<?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-04-15T14:00:30Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.1</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 class=&quot;diff diff-contentalign-left&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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'unused' 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 ''after'' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'unused' 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 ''after'' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 'solution' will not 'work', but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn't. There has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 'solution' will not 'work', but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn't. There has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (&lt;ins class=&quot;diffchange diffchange-inline&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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'eating' it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the device'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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'eating' it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the device'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:version:1.11a:oldid:35133:newid:36650 --&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 dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Functionality discussion: &lt;/span&gt; An open grant line will freeze the machine&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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's any break in the grant line (perhaps a missing [[grant continuity card]]) at ''any'' point before it gets to the M9302, the M9302 will jam SACK on. That is because the resulting 'open' 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='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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's any break in the grant line (perhaps a missing [[grant continuity card]]) at ''any'' point before it gets to the M9302, the M9302 will jam SACK on &lt;ins class=&quot;diffchange diffchange-inline&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 'open' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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:version:1.11a:oldid:25605:newid:35133 --&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 dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Functionality discussion: &lt;/span&gt; clarify&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 'unused' 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 ''after'' 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='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&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 'unused' 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 ''after'' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 'solution' will not 'work', but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn't. There has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There must be circumstances in which the M9302 'solution' will not 'work', but the M8264 will; scenarios in which the M8264 will assert SACK, but in which the M9302 wouldn't. There has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (below).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:version:1.11a:oldid:25604:newid:25605 --&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 class=&quot;diff diff-contentalign-left&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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Functionality discussion==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;If &lt;/del&gt;a device requests a grant (i.e. posts an [[interrupt]] request), and then drops the request at ''just'' the right time (perhaps because the device is reset), a grant will be sent out when there's no device waiting to take it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&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 ''just'' the right time (perhaps because the device is reset), a grant will be sent out when there's no device waiting to take it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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:version:1.11a:oldid:25423:newid:25604 --&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 dir=&quot;auto&quot;&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;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'unused' 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 ''after'' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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 'unused' 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 ''after'' 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;One possibility is that there are &lt;/del&gt;circumstances in which the M9302 'solution' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;doesn&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;t &lt;/del&gt;work; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for example&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;if there's a break &lt;/del&gt;in the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;grant line (perhaps &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;missing [[&lt;/del&gt;grant &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;continuity card]]) down-stream from the device (so the system usually works)&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;before &lt;/del&gt;it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gets &lt;/del&gt;to the M9302 (&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;which can turn the grant around as a SACK&lt;/del&gt;)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;; then&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;if an &lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;unused' grant happens, a CPU without &lt;/del&gt;a grant &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;timeout circuit will hang!&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;There must be &lt;/ins&gt;circumstances in which the M9302 'solution' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;will not &lt;/ins&gt;'work&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;', but the M8264 will&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;scenarios in which the M8264 will assert SACK&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;M9302 wouldn't. There has to be &lt;/ins&gt;a grant, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but &lt;/ins&gt;it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;can't get &lt;/ins&gt;to the M9302 (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;because otherwise it would do its thing&lt;/ins&gt;), &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but that failure to get there can&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;t be simply &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;broken &lt;/ins&gt;grant &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;chain (below).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;The M8264 was apparently &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;first attempt &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;deal with this. It is timer based&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/del&gt;it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;doesn't need &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;intact grant line to &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;terminator required for turnaround&lt;/del&gt;. So the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;system won&lt;/del&gt;'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;t lock even if there is a broken &lt;/del&gt;grant &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;chain &lt;/del&gt;- or &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a poorly behaved or hung device eating grants&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;One example would be a poorly behaved or malfunctioning device: not passing a grant along (for &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;M9302 &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;turn around)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but 'eating' &lt;/ins&gt;it&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, but without doing &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interrupt cycle with &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;CPU&lt;/ins&gt;. So &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;either a hard-failed component in &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;device&lt;/ins&gt;'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;s &lt;/ins&gt;grant-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;passing circuit, &lt;/ins&gt;or &lt;ins class=&quot;diffchange diffchange-inline&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 class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&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 class=&quot;diffchange diffchange-inline&quot;&gt;interrupt cycle &lt;/del&gt;with the CPU&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. So either a hard-failed component in &lt;/del&gt;the grant&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-passing &lt;/del&gt;circuit&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, or some design flaw&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;The M8264 was apparently &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;first attempt to deal &lt;/ins&gt;with &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;this; later, &lt;/ins&gt;the CPU &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;was modified to put &lt;/ins&gt;the grant &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;timeout &lt;/ins&gt;circuit &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;back in&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;!-- If &lt;/del&gt;there's a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;broken &lt;/del&gt;grant &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;chain&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;then &lt;/del&gt;the M9302 will jam SACK on. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The M8264 could not even be there, and nothing would be any different. Same thing if &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CPU asserts a &lt;/del&gt;grant in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;response to a now&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;removed interrupt request: &lt;/del&gt;the M9302 will &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jam SACK on&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;etc&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;etc&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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 class=&quot;diffchange diffchange-inline&quot;&gt;Note that if &lt;/ins&gt;there's &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;any break in the grant line (perhaps &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;missing [[&lt;/ins&gt;grant &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;continuity card]]) at ''any'' point before it gets to the M9302&lt;/ins&gt;, the M9302 will jam SACK on. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;That is because the resulting 'open' input to the [[transistor-transistor logic|TTL]] [[gate]] monitoring &lt;/ins&gt;the grant &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;line &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the device immediately down&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stream from the break (perhaps in &lt;/ins&gt;the M9302&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) &lt;/ins&gt;will &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;float high&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;thereby looking like a permanent incoming grant&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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't; there has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (ditto). (It can'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;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-wiki_:diff:version:1.11a:oldid:25410:newid:25423 --&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 '''M8264 No-SACK Timeout Module''' 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'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'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'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 ''just'' the right time (perhaps because the device is reset), a grant will be sent out when there'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 'unused' 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 ''after'' 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 'solution' doesn't work; for example, if there'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 'unused' 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't need the intact grant line to the terminator required for turnaround. So the system won'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'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't; there has to be a grant, but it can't get to the M9302 (because otherwise it would do its thing), but that failure to get there can't be simply a broken grant chain (ditto). (It can'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>