<?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=M8264_No-SACK_Timeout_Module</id>
	<title>M8264 No-SACK Timeout Module - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=M8264_No-SACK_Timeout_Module"/>
	<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;action=history"/>
	<updated>2026-09-14T11:07:25Z</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=M8264_No-SACK_Timeout_Module&amp;diff=36650&amp;oldid=prev</id>
		<title>Jnc: Clarify</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=36650&amp;oldid=prev"/>
		<updated>2025-08-05T17:37:43Z</updated>

		<summary type="html">&lt;p&gt;Clarify&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:37, 5 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing to the M8264, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &amp;#039;unused&amp;#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &amp;#039;&amp;#039;after&amp;#039;&amp;#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing to the M8264, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &amp;#039;unused&amp;#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &amp;#039;&amp;#039;after&amp;#039;&amp;#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 &#039;solution&#039; will not &#039;work&#039;, but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn&#039;t. There has to be a grant, but it can&#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&#039;t be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 &#039;solution&#039; will not &#039;work&#039;, but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn&#039;t. There has to be a grant, but it can&#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&#039;t be simply a broken grant chain (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which has a separate answer, &lt;/ins&gt;below).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One example would be a poorly behaved or malfunctioning device: not passing a grant along (for the M9302 to turn around), but &amp;#039;eating&amp;#039; it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the device&amp;#039;s grant-passing circuit, or some design flaw. (If the system is using an old-style [[M930 UNIBUS terminator]], without SACK turnaround, an unused grant could also hang the system; but switching to an M9302 would be easier than an M8264.)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One example would be a poorly behaved or malfunctioning device: not passing a grant along (for the M9302 to turn around), but &amp;#039;eating&amp;#039; it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the device&amp;#039;s grant-passing circuit, or some design flaw. (If the system is using an old-style [[M930 UNIBUS terminator]], without SACK turnaround, an unused grant could also hang the system; but switching to an M9302 would be easier than an M8264.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:1.41:old-35133:rev-36650:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=35133&amp;oldid=prev</id>
		<title>Jnc: /* Functionality discussion */ An open grant line will freeze the machine</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=35133&amp;oldid=prev"/>
		<updated>2024-08-25T11:28:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Functionality discussion: &lt;/span&gt; An open grant line will freeze the machine&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:28, 25 August 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M8264 was apparently the first attempt to deal with this; later, the CPU was modified to put the grant timeout circuit back in.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M8264 was apparently the first attempt to deal with this; later, the CPU was modified to put the grant timeout circuit back in.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that if there&#039;s any break in the grant line (perhaps a missing [[grant continuity card]]) at &#039;&#039;any&#039;&#039; point before it gets to the M9302, the M9302 will jam SACK on. That is because the resulting &#039;open&#039; input to the [[transistor-transistor logic|TTL]] [[gate]] monitoring the grant line in the device immediately down-stream from the break (perhaps in the M9302) will float high, thereby looking like a permanent incoming grant, which will be turned around by the M9302 as a permanent assertion of SACK.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that if there&#039;s any break in the grant line (perhaps a missing [[grant continuity card]]) at &#039;&#039;any&#039;&#039; point before it gets to the M9302, the M9302 will jam SACK on &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(hanging the machine so that it will not run at all; this is fairly easy to recognize and fix)&lt;/ins&gt;. That is because the resulting &#039;open&#039; input to the [[transistor-transistor logic|TTL]] [[gate]] monitoring the grant line in the device immediately down-stream from the break (perhaps in the M9302) will float high, thereby looking like a permanent incoming grant, which will be turned around by the M9302 as a permanent assertion of SACK.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:1.41:old-25605:rev-35133:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25605&amp;oldid=prev</id>
		<title>Jnc: /* Functionality discussion */ clarify</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25605&amp;oldid=prev"/>
		<updated>2022-04-20T14:41:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Functionality discussion: &lt;/span&gt; clarify&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:41, 20 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;quot;As a result of this [SACK turnaround] circuitry [on the [[M9302 UNIBUS terminator|M9302]]], the SACK timeout feature found on other processors is not required&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;quot;As a result of this [SACK turnaround] circuitry [on the [[M9302 UNIBUS terminator|M9302]]], the SACK timeout feature found on other processors is not required&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &#039;unused&#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &#039;&#039;after&#039;&#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to the M8264&lt;/ins&gt;, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &#039;unused&#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &#039;&#039;after&#039;&#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 &amp;#039;solution&amp;#039; will not &amp;#039;work&amp;#039;, but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn&amp;#039;t. There has to be a grant, but it can&amp;#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&amp;#039;t be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 &amp;#039;solution&amp;#039; will not &amp;#039;work&amp;#039;, but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn&amp;#039;t. There has to be a grant, but it can&amp;#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&amp;#039;t be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:1.41:old-25604:rev-25605:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25604&amp;oldid=prev</id>
		<title>Jnc: another possible cause of unused grants</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25604&amp;oldid=prev"/>
		<updated>2022-04-20T14:39:42Z</updated>

		<summary type="html">&lt;p&gt;another possible cause of unused grants&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 20 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Functionality discussion==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Functionality discussion==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;How can a [[bus grant]] go unused? &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If &lt;/del&gt;a device requests a grant (i.e. posts an [[interrupt]] request), and then drops the request at &#039;&#039;just&#039;&#039; the right time (perhaps because the device is reset), a grant will be sent out when there&#039;s no device waiting to take it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;How can a [[bus grant]] go unused? &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;There are several possible causes for an unused grant. One possibility is that [[noise]] on a request line will look to the arbitrator (in the CPU) like a valid request.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Another possibility is that if &lt;/ins&gt;a device requests a grant (i.e. posts an [[interrupt]] request), and then drops the request at &#039;&#039;just&#039;&#039; the right time (perhaps because the device is reset), a grant will be sent out when there&#039;s no device waiting to take it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EK-11034-OP-PRE2 gives a clue as to how the problem with grant timeouts which the M8264 solved started. In 3.10.2, &amp;quot;End-of-Bus Terminator&amp;quot;, it says:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EK-11034-OP-PRE2 gives a clue as to how the problem with grant timeouts which the M8264 solved started. In 3.10.2, &amp;quot;End-of-Bus Terminator&amp;quot;, it says:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:1.41:old-25423:rev-25604:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25423&amp;oldid=prev</id>
		<title>Jnc: /* Functionality discussion */ Fix mistake in potential cause (broken grant line will jam SACK)</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25423&amp;oldid=prev"/>
		<updated>2022-04-02T08:34:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Functionality discussion: &lt;/span&gt; Fix mistake in potential cause (broken grant line will jam SACK)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:34, 2 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &amp;#039;unused&amp;#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &amp;#039;&amp;#039;after&amp;#039;&amp;#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The M9302 does a very similar thing, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &amp;#039;unused&amp;#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &amp;#039;&amp;#039;after&amp;#039;&amp;#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;One possibility is that there are &lt;/del&gt;circumstances in which the M9302 &#039;solution&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doesn&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t &lt;/del&gt;work; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for example&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if there&#039;s a break &lt;/del&gt;in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;grant line (perhaps &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;missing [[&lt;/del&gt;grant &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;continuity card]]) down-stream from the device (so the system usually works)&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;before &lt;/del&gt;it &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gets &lt;/del&gt;to the M9302 (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which can turn the grant around as a SACK&lt;/del&gt;)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; then&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if an &lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unused&#039; grant happens, a CPU without &lt;/del&gt;a grant &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;timeout circuit will hang!&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;There must be &lt;/ins&gt;circumstances in which the M9302 &#039;solution&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;will not &lt;/ins&gt;&#039;work&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;, but the M8264 will&lt;/ins&gt;; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scenarios in which the M8264 will assert SACK&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;M9302 wouldn&#039;t. There has to be &lt;/ins&gt;a grant, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but &lt;/ins&gt;it &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;can&#039;t get &lt;/ins&gt;to the M9302 (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;because otherwise it would do its thing&lt;/ins&gt;), &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but that failure to get there can&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t be simply &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;broken &lt;/ins&gt;grant &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chain (below).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The M8264 was apparently &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first attempt &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;deal with this. It is timer based&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and &lt;/del&gt;it &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doesn&#039;t need &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intact grant line to &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terminator required for turnaround&lt;/del&gt;. So the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;system won&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t lock even if there is a broken &lt;/del&gt;grant &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chain &lt;/del&gt;- or &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a poorly behaved or hung device eating grants&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;One example would be a poorly behaved or malfunctioning device: not passing a grant along (for &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;M9302 &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;turn around)&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but &#039;eating&#039; &lt;/ins&gt;it&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, but without doing &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interrupt cycle with &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CPU&lt;/ins&gt;. So &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;either a hard-failed component in &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;device&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s &lt;/ins&gt;grant-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;passing circuit, &lt;/ins&gt;or &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;some design flaw. (If the system is using an old-style [[M930 UNIBUS terminator]], without SACK turnaround, an unused grant could also hang the system; but switching to an M9302 would be easier than an M8264&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(Another possible cause is a device which is malfunctioning: not passing a grant along, but eating it, but without doing &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interrupt cycle &lt;/del&gt;with the CPU&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. So either a hard-failed component in &lt;/del&gt;the grant&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-passing &lt;/del&gt;circuit&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, or some design flaw&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The M8264 was apparently &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first attempt to deal &lt;/ins&gt;with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;this; later, &lt;/ins&gt;the CPU &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;was modified to put &lt;/ins&gt;the grant &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;timeout &lt;/ins&gt;circuit &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;back in&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- If &lt;/del&gt;there&#039;s a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;broken &lt;/del&gt;grant &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chain&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;then &lt;/del&gt;the M9302 will jam SACK on. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The M8264 could not even be there, and nothing would be any different. Same thing if &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CPU asserts a &lt;/del&gt;grant in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;response to a now&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;removed interrupt request: &lt;/del&gt;the M9302 will &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jam SACK on&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;etc&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;etc&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Note that if &lt;/ins&gt;there&#039;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;any break in the grant line (perhaps &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;missing [[&lt;/ins&gt;grant &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;continuity card]]) at &#039;&#039;any&#039;&#039; point before it gets to the M9302&lt;/ins&gt;, the M9302 will jam SACK on. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;That is because the resulting &#039;open&#039; input to the [[transistor-transistor logic|TTL]] [[gate]] monitoring &lt;/ins&gt;the grant &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;line &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the device immediately down&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stream from the break (perhaps in &lt;/ins&gt;the M9302&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) &lt;/ins&gt;will &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;float high&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thereby looking like a permanent incoming grant&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which will be turned around by the M9302 as a permanent assertion of SACK&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In trying to think up _any_ circumstance in which the M8264 will assert SACK, in which the M9302 wouldn&#039;t; there has to be a grant, but it can&#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&#039;t be simply a broken grant chain (ditto). (It can&#039;t be a glitch; it has to be a permanent thing which prevents passing the grant.)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:1.41:old-25410:rev-25423:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25410&amp;oldid=prev</id>
		<title>Jnc: Cover this obscure thing</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=M8264_No-SACK_Timeout_Module&amp;diff=25410&amp;oldid=prev"/>
		<updated>2022-04-01T21:15:33Z</updated>

		<summary type="html">&lt;p&gt;Cover this obscure thing&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Image:M8264_No-SACK_Timeout_Module.jpg|300px|thumb|right|M8264 Timeout Module card]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;M8264 No-SACK Timeout Module&amp;#039;&amp;#039;&amp;#039; is rare, little-known, poorly-documented optional [[UNIBUS]] board for the [[KD11-D CPU]] of the [[PDP-11/04]] and the [[KD11-E CPU]] of the [[PDP-11/34]].&lt;br /&gt;
&lt;br /&gt;
It provides the [[UNIBUS and QBUS termination#SACK turnaround|grant timeout circuit]] which is not included in those two [[Central Processing Unit|CPUs]].&lt;br /&gt;
&lt;br /&gt;
It was a [[DEC card form factor|quad]] format card, which plugged into any available [[Small Peripheral Controller|SPC]] slot. The M8264 doesn&amp;#039;t tie into the CPU, it just looks at UNIBUS lines, so it can be plugged into any UNIBUS machine (near the start of the [[bus]], since the [[bus grant line]]s it monitors are wired sequentially).&lt;br /&gt;
&lt;br /&gt;
EK-KD1EA-MM-001 Section 4.7.2.4, &amp;quot;No-SACK Timeout Circuitry&amp;quot;, shows a very similar circuit to that of the M8264 (see link below), and says it &amp;quot;asserts BUS SACK ... [if the [[peripheral|device]]] does not assert SACK within 22 usec after a grant line has been enabled.&amp;quot; Presumably the M8264 does the same thing.&lt;br /&gt;
&lt;br /&gt;
(The M8264 also has a synchronous 4-bit up/down counter, but that&amp;#039;s apparently just there to count timeout events, and display the count in some [[Light Emitting Diode|LEDs]] - probably just to make sure it isn&amp;#039;t happening too often.)&lt;br /&gt;
&lt;br /&gt;
The M8264 was later dropped when the [[KD11-EA CPU]], with a grant timeout circuit built in, came out.&lt;br /&gt;
&lt;br /&gt;
==Functionality discussion==&lt;br /&gt;
&lt;br /&gt;
How can a [[bus grant]] go unused? If a device requests a grant (i.e. posts an [[interrupt]] request), and then drops the request at &amp;#039;&amp;#039;just&amp;#039;&amp;#039; the right time (perhaps because the device is reset), a grant will be sent out when there&amp;#039;s no device waiting to take it.&lt;br /&gt;
&lt;br /&gt;
EK-11034-OP-PRE2 gives a clue as to how the problem with grant timeouts which the M8264 solved started. In 3.10.2, &amp;quot;End-of-Bus Terminator&amp;quot;, it says:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;As a result of this [SACK turnaround] circuitry [on the [[M9302 UNIBUS terminator|M9302]]], the SACK timeout feature found on other processors is not required&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The M9302 does a very similar thing, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an &amp;#039;unused&amp;#039; bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced &amp;#039;&amp;#039;after&amp;#039;&amp;#039; that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?&lt;br /&gt;
&lt;br /&gt;
One possibility is that there are circumstances in which the M9302 &amp;#039;solution&amp;#039; doesn&amp;#039;t work; for example, if there&amp;#039;s a break in the grant line (perhaps a missing [[grant continuity card]]) down-stream from the device (so the system usually works), before it gets to the M9302 (which can turn the grant around as a SACK); then, if an &amp;#039;unused&amp;#039; grant happens, a CPU without a grant timeout circuit will hang!&lt;br /&gt;
&lt;br /&gt;
The M8264 was apparently the first attempt to deal with this. It is timer based, and it doesn&amp;#039;t need the intact grant line to the terminator required for turnaround. So the system won&amp;#039;t lock even if there is a broken grant chain - or a poorly behaved or hung device eating grants.&lt;br /&gt;
&lt;br /&gt;
(Another possible cause is a device which is malfunctioning: not passing a grant along, but eating it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the grant-passing circuit, or some design flaw.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If there&amp;#039;s a broken grant chain, then the M9302 will jam SACK on. The M8264 could not even be there, and nothing would be any different. Same thing if the CPU asserts a grant in response to a now-removed interrupt request: the M9302 will jam SACK on, etc, etc.&lt;br /&gt;
&lt;br /&gt;
In trying to think up _any_ circumstance in which the M8264 will assert SACK, in which the M9302 wouldn&amp;#039;t; there has to be a grant, but it can&amp;#039;t get to the M9302 (because otherwise it would do its thing), but that failure to get there can&amp;#039;t be simply a broken grant chain (ditto). (It can&amp;#039;t be a glitch; it has to be a permanent thing which prevents passing the grant.)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/1134/MP00082_1134_Vol2_Sep76.pdf 11/34 Vol. 2 Field Maintenance Print Set] - the M8264 is covered pg. 149 of the PDF&lt;br /&gt;
&lt;br /&gt;
[[Category: PDP-11 UNIBUS Processors]]&lt;/div&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
</feed>