home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Standards 1993 July / Disc.iso / ieee / p1394 / min_mail / mail9206.txt < prev    next >
Encoding:
Text File  |  1992-07-19  |  24.7 KB  |  532 lines

  1.  
  2.  
  3. Date: Mon, 15 Jun 1992   00:24 -0800 (PST)
  4. From: DBG@SLACVM.SLAC.Stanford.EDU
  5. Subject: Block read 'simplification' is dangerous
  6. To: p1394@Sun.COM
  7.  
  8. peter.bartlett@ftcollins.ncr.com said on Thu, 11 Jun 92 10:53:57 MDT :
  9. >Subject: Block read requests
  10. >I'd like to propose a minor change to the P1394 transaction layer to make
  11. >implementations a bit easier.
  12. >
  13. >Currently, when a P1394 device sends a block read request packet, the data
  14. >length encoded in the packet cannot exceed the maximum supported by the
  15. >responder.  For example, if my device supports 128 bytes of data and I'm
  16. >talking to a device which only supports 33, I have to break up my request
  17. >for 128 bytes into, say, three 33-byte requests and a 29-byte request.
  18. >This makes implementation in hardware or software slower and more complex.
  19. >
  20. >It would be nice if I could just request all 128 bytes at once, and accept
  21. >the partial responses as they arrive.  Not only does this make the process
  22. >of requesting data much simpler, it reduces bus traffic by eliminating some
  23. >read request packets altogether.
  24. >
  25. >...
  26. >All of this makes long block reads much easier, but it doesn't do anything
  27. >for block writes.  A device still has to know the maximum block length of
  28. >the device it is writing to.  If a way around this could be found as well,
  29. >life would become almost too simple.
  30.      
  31. This is one of those things that seems like a good idea at first blush,
  32. but has hidden pitfalls that will haunt you later. It breaks the
  33. request/response pairing that is assumed in present protocols.
  34.      
  35. At first it seems like one could fix that by making the last transfer of
  36. a series comprising a block special, so one could recognize that one as
  37. the end, and pair that one against the request for timeout purposes.
  38.      
  39. However, SerialBus is supposed to be a 1212 compliant bus, easily
  40. interfaceable to other 1212-compliant buses. One implication of this
  41. general interconnection is that the order of packet delivery is not
  42. guaranteed. Thus the 'final' response piece might arrive before an
  43. intermediate piece, so an accounting system is required to keep track of
  44. the pieces. A new response sub-sequence number will be needed at a
  45. minimum, with hardware to account for the pieces as they arrive.
  46.      
  47. Fixing the out-of-order delivery problem is not a reasonable solution,
  48. as it places very costly constraints on the packet delivery system.
  49.      
  50. If there is still a strong desire for this feature after thinking it
  51. over again, we will have to go into the problems in some detail and add
  52. the necessary support to the packet formats and protocols. It will have
  53. to lower the interface costs a lot to justify the effort that will be
  54. required.
  55.      
  56. Dave Gustavson
  57.  
  58. ======================================================================
  59.  
  60.  
  61.  
  62.  
  63. From: pete bartlett <sybase!nike!bartlett@Eng.Sun.COM>
  64. Subject: More dangerous commentary
  65. To: p1394 reflector <p1394@Sun.COM>
  66. Date: Tue, 16 Jun 92 9:02:01 MDT
  67.  
  68. I'm not convinced that ensuring packet delivery order across 1212-compliant
  69. buses is as complex as has been suggested.
  70.  
  71. Consider a P1394 bus attached via a bridge to another 1212-type bus.  As
  72. currently defined, each P1394 device must know the maximum packet size
  73. which can be accepted by every device it might wish to talk to on the other
  74. bus.  It could determine these following each bus reset by polling all
  75. devices.  This seems like a rather lengthy process, especially when a large 
  76. number of buses are interconnected.
  77.  
  78. Moreover, the requesting device must be aware of packet size limitations
  79. of the bridge device itself.  If we have a devices on either side of the
  80. bridge which can handle 512-byte packets, but the bridge only supports 128
  81. bytes, the requester can only ask for 128 bytes at a time.
  82.  
  83. In this scheme, ordering is ensured by attaching a 6-bit transaction label
  84. to each request/response packet pair.  Thus, responses can be easily matched
  85. to the corresponding request.
  86.  
  87. As an alternative, the bridge device itself could perform the packet size
  88. translation.  In the situation described above, the requester would ask for
  89. 512 (or more) bytes of data.  This would be split by the bridge into 128-byte
  90. maximum requests on the other bus.  Ordering is ensured by the fact that these
  91. requests are made one at a time, and therefore get returned as partial
  92. responses
  93. to the requester in order.  All this uses a simple scheme similar to that
  94. described in my last, much-maligned EMAIL. 
  95.  
  96. This method eliminates the requirement that P1394 devices have knowledge of the
  97. packet size hardware constraints of any device they read from.
  98.  
  99. In any case, I'm not insisting that we do this.  My real purpose was simply
  100. to see whether anyone out there could solve the analogous problem with the
  101. write case.  Unless this is accomplished, the read solution only adds
  102. complexity.
  103.  
  104. The only possibility I can see is to rework the way writes are done.  The
  105. block write would become a "no data" packet, and the responder would come
  106. back with something that looks much like a read request.  Since the
  107. requester has the data for the write ready, the responder would get a
  108. unified transaction.
  109.  
  110. Thus the requester would not need to know how many bytes it could send the
  111. responder in a single packet, since the responder would control the data flow.
  112.  
  113. Again, this probably creates more problems than it solves, and I'm withdrawing
  114. my request to change the P1394 transaction layer.  If anyone would like to
  115. continue working on this, let me know.
  116.  
  117.                         Pete Bartlett
  118.                         NCR Corp.
  119.  
  120. ======================================================================
  121.  
  122.  
  123. Date: 16 Jun 92 09:44:51 U
  124. From: "Michael Teener" <michael_teener@gateway.qm.apple.com>
  125. Subject: Re: Multi-bus P1394 systems
  126. To: p1394@scsi.Eng.Sun.COM
  127.  
  128. Message Subject:
  129. RE>Multi-bus P1394 systems
  130. About Ken's questions:
  131.  
  132. >OK, lets see if I understand Mike Teener's and Dave James's assertion that
  133. >arbitration does not cross bus boundaries.  This would mean that each bus goes
  134. >through its own local arbitration sequence independently of other busses. 
  135. >Somebody wins arbitration and sends out a packet with an address--containing
  136. >the bus number, among other things.  Somewhere there is a bridge that connects
  137. >the two busses.  The bridge watches for address on one bus that belong to
  138. >another bus and forwards packets accordingly.  
  139.  
  140. >Question: does the bridge become a responder on the originating bus, or is
  141. >the ultimate target the only responder?  
  142.  
  143. The ultimate target is the only responder *at the transaction layer*. At the
  144. link layer, all intermediate bridges respond with a "pending" acknowledge (or a
  145. link-layer error such as "busy").
  146.  
  147. >Question-2:  how do the nodes on one bridge learn about the existence of
  148. >devices on the other bus?  Should the bridge announce the existence of all 
  149. >the nodes on the other bus at one time(arbitrate once), or should it announce 
  150. >them one node per arbitration? 
  151.  
  152. This *is* the problem in multi-bus systems: management. There is supposed to be
  153. a study group started up some time this year to work on IEEE 1212-based bus
  154. bridging mechanisms. Are you volunteering? Dan O'Connor (doconnor@apple.com)
  155. was at one time interested in leading the effort, but now he's running off to
  156. grad school to add more initials to his name. 
  157.  
  158. >Question-3: Should the busses be bridged together in daisy-chain fashion, or
  159. >should every bus have a bridge to every other bus?  
  160.  
  161. See above. As a personal interest, I would would like to ensure that bus
  162. bridges are really defined as "half-bridges" that can be connected together
  163. using an arbitrary communication mechanism, and the bridging work be scalable
  164. to a variety of latencies from LAN-like down to direct hardware full bridges.
  165.  
  166. >Ken Stewart
  167.  
  168. Mike Teener
  169. ======================================================================
  170.  
  171. From sybase!ncrcom!nike.ftcollins.ncr.com!bartlett@Eng.Sun.COM Fri Jun 26 13:51:
  172. 59 1992
  173. Status: RO
  174.  
  175.  
  176. As discussed in the Minneapolis meeting, SGS/Inmos' DS-link signalling
  177. mechanism provides several advantages over a simple data/clock scheme.
  178. Instead of clock and data signals (each differential pairs in P1394)
  179. DS-links have "Data" and "Strobe" signals.  When transmitting unencoded
  180. data, the D signal contains the same information as the old scheme.  The
  181. S signal, however, only changes when the D does not.  Therefore one and
  182. only one signal is changing every bit time (as opposed to one or two with
  183. the data/clock.)  Also, signal changes are a full bit time apart, where in
  184. the old scheme the data changed half a bit time before and after changes on
  185. the clock.
  186.  
  187. As I said, DS-links have several advantages over the data/clock scheme.
  188. Two of these are particularly relevant to P1394.  First, the skew tolerance
  189. on the bus is doubled.  Instead of having a half-clock of data setup and a
  190. half-clock of hold, we have two signals which change a full clock apart.  They
  191. can still be decoded correctly even if they skew more than half a clock
  192. toward or away from each other.
  193.  
  194. Second, the physical interface chips can have an internal clock running at
  195. only half the old rate.  This is a direct result of the fact that signals
  196. on the bus need only change every bit time, rather than twice per bit
  197. time.  I know some of the working group members couldn't care less about
  198. this (since it's a chip issue) but the fact is it will allow us to create
  199. devices which implement the 200 and 400 Mbit/sec rates at a much earlier
  200. date.
  201.  
  202. Other advantages (which I'm not quite as concerned with) include fully
  203. autobaud operation, and dynamic skew adjustment.
  204.  
  205. As a chip designer, I can confidently state that the cost of devices using
  206. DS-links signalling will be no greater than if they used the data/clock
  207. method.  The gate-level changes are quite minor.  The only cost issue
  208. remaining is the SGS licensing fee.
  209.  
  210. I think it has been reasonably well established that, for unencoded data,
  211. the DS-links signalling represents a significant improvement over the
  212. old data/clock method.  This is comparing the proverbial apples to other
  213. proverbial apples.  I think there was some confusion at the meeting
  214. because some members were instead comparing apples (unencoded DS-links)
  215. to oranges (encoded clock/data), and therefore finding disadvantages in
  216. the DS-links scheme.
  217.  
  218. In order to compare oranges to oranges, we must examine if the data on the
  219. DS-links can be encoded to provide the same advantages as on the old
  220. method.  These advantages are DC balance and embedded clocking.
  221.  
  222. I'm no expert on data encoding; in fact I'm not familiar with the specifics
  223. of IBM's 8B/10B code, so I'll try to write in very general terms.  A code
  224. such as 8B/10B takes logical data (8 bits per byte) and encodes it into
  225. some other form (usually a greater number of bits) in order to achieve some
  226. advantage when transferring or storing the data.  The advantages we're
  227. looking for in P1394 are DC balance and embedded clocking, as well as some
  228. increased reliability through detection of "bad" codes.  I believe an RLL
  229. code (as I think 8B/10B is) also reduces ISI by limiting the range of
  230. frequencies on the data transmission signals.
  231.  
  232. In order to provide DC balance on a simple data/clock bus, the number of
  233. physical '1' and '0' symbols must be equalized over time.  This is usually
  234. done by monitoring the disparity, and switching to alternate codes for
  235. some logical symbols.  8B/10B does so on a sub-byte basis, since it is
  236. actually a 5B/6B and 3B/4B code combined.
  237.  
  238. With DS-links, we have two signal pairs which need DC balance.  The key to
  239. providing this is to slightly shift the way we look at the D and S signals.
  240. As I have said, the D signal carries the data, and the S changes whenever
  241. the data does not.  An alternate way to view the D signal is that it
  242. changes whenever the data changes.  The way to achieve DC balance is
  243. therefore to equalize the number of changes and "no-changes" in the
  244. physical data stream.
  245.  
  246. I haven't proven it yet, but I think a DS-links code can be directly
  247. derived from any DC-balanced data/clock code.  The chip logic to do so
  248. is very simple, or even non-existant.  That is, for the DS-links it's
  249. a natural.  My purpose in describing this here is to start a discssion
  250. amongst those more adept at encoding than I.
  251.  
  252. Consider a 10-bit encoding of "1010101010" which is innately DC-balanced.
  253. As raw data on DS links, D would carry "1010101010" while S would see
  254. "0000000000".  Obviously, this is not DC-balanced.  However, by converting
  255. each '1' to a "change" and each '0' to a "no change" the D signal
  256. becomes "1100110011" and the S is "0110011001" which are both DC-balanced.
  257.  
  258. If this principle carries over to all the codes in, say, 8B/10B, the output
  259. of the existing encoder could be attached directly to a DS-links
  260. transmitter which interprets a '1'  as "change the D signal" and a '0'
  261. as "change the S signal".
  262.  
  263. As far as embedded clocking, each of the D and S signals carries all the
  264. data.  The other is only needed to avoid requiring a PLL.  If the S signal
  265. is removed, the original signal can easily be recovered from the D signal
  266. alone.  A string of alternating '1' and '0' can be used to lock the PLL
  267. at the beginning of transmission.
  268.  
  269. One concern at this point is the effect of such a translation on run length.
  270. If we stick with 8B/10B (which has some limitations on the number of '1' or
  271. '0' symbols in a row so the PLL can stay locked) we must be sure these
  272. limits are not violated by the new code.
  273.  
  274. At this point, I don't think we should rule out new (and patentable!)
  275. codes.  Whatever we do, however, it must be done *soon*.
  276.  
  277. In any case, I hope this gives the encoding experts out there something to
  278. start with.  I'll be looking at it myself in more detail over the next few
  279. weeks.  Please send any findings to the reflector.  If we can pull this
  280. off, I think we will significantly extend the life of 1394 as a standard in
  281. addition to increasing early acceptance through the availability of higher-
  282. speed devices.
  283.  
  284.  
  285.                                                 Pete Bartlett
  286.                                                 NCR Corp.
  287.                                                 (719) 596-5795
  288.  
  289. Date: 22 Jun 1992 10:57:43 U
  290. From: "David James" <David_James@bbcomm.apple.com>
  291. Subject: Re: Comments on Snively and 
  292. To: "Reflector SerialBus" <P1394@Sun.COM>
  293.  
  294. SUBJECT: RE>Comments on Snively and Gus...
  295.  
  296. Ralph (and other observers),
  297. ** In response to your notes, my responding comments are following the **.
  298.  
  299. As an employee of the DoD I am very concerned about SECURITY. The military has to 
  300. segregate systems so that no task  can access data for which it is not explicitly 
  301. permitted. The military is also required to segregate tasks so that one task 
  302. CANNOT 
  303. interfere with another task.
  304.  
  305. ** Within one workstation, I would have a hard time seeing how this
  306. ** is a major concern within the commercial environment. However,
  307. ** if SCI and/or FC is used to connect workstations, I firmly agree.
  308. ** I don't want others accessing and/or modifying data other than
  309. ** the address ranges allocated to them. I would expect that this
  310. ** would also be a concern of high-end systems providers, who
  311. ** use SerialBus to connect to their peripherals.
  312.  
  313. I am very concerned that system interconnect standards provide a means by which 
  314. one 
  315. processor or I/O device, or better yet one task, can protect himself from all 
  316. others.  I am somewhat alarmed a Dave's statement that "the chance of a random hit 
  317. is small".  DoD security requirements demand better protection than "chances of 
  318. random hits.  I urge all to very seriously consider ways of limiting access to not 
  319. only lessen the changes of failure but to make things bulletproof.
  320.  
  321. ** SCI and SerialBus interfaces are unlikely to provide remote systems with 
  322. complete 
  323. ** access to workstation memory. Rather, some form of per-page address protection 
  324. is 
  325. ** expected. Thus, the OS within one workstation could selectively allow access to 
  326. ** certain pages while excluding accesses to others.
  327. **
  328. ** If desired, only encrypted data could be transferred to these pages, and a 
  329. ** decoding processor could be interrupted to decrypt and/or authenticate the data 
  330. ** before its used. Thus, the authentication procedures could behave similarly to 
  331. ** network protocols. Having a memory-mapped interface to transfer the bulk of 
  332. data 
  333. ** without processor-network-software interference (on a per-packet basis) 
  334. improves 
  335. ** the efficiency of the data-transfer, while allowing software to perform coding 
  336. ** and authentication checks before the data is actually used.
  337. **
  338. ** Hope to see you in Minneapolis, where we hope to have more of these useful 
  339. ** FC/SerialBus/SCI discussions. I think that SerialBusnd SCI are forcing changes 
  340. in 
  341. ** our thought processes, since they allow us to extend the use of "backplane" 
  342. ** protocols beyond their normal (<1meter) physical distance limitations.
  343. **
  344. ** Dave James
  345. ** Apple Computer
  346. ** dvj@apple.com
  347.   
  348. Thanks
  349. Ralph Lachenmaier
  350. Naval Air Warfare Center
  351. Warminster, Pa
  352.  
  353.  
  354. The following is to conclude my action item from the last SerialBus meeting. We 
  355. modified the priority protocols proposal and confirmed the forward-progress 
  356. proposal. The proposed resolution of these follows. I modified the priority 
  357. proposal 
  358. based on Ed Gardner's inputs. They are simpler, but have fewer priority levels.
  359. I believe there was no need to change the basics of the fairness-protocols 
  360. presentation. However, I have included the minor changes resulting from Jun92 
  361. meeting discussions.
  362. ===========================================================
  363.  
  364. Title: Proposal for SerialBus priority protocols.
  365.  
  366. Author: Dave James, Apple Computer
  367. Status: Modified June 92 meeting.
  368.  
  369. When a transaction is generated, the requester initializes a 1-bit priority bit 
  370. (lets call this bit pri) in the request-packet header. The pri field remains 
  371. unchanged as the request packet is routed to the responder.
  372.  
  373. The response packet also has a 1-bit pri field, which is initialized by the 
  374. responder. The value of the pri field in the response and the request are expected 
  375. to be the same.
  376.  
  377. For the requester and the intermediate bridges, this field determines the priority 
  378. of the request packet. For the responder and the returning bridges, this field 
  379. determines the priority of the response packet. In both cases, the sending node 
  380. (as 
  381. opposed to the acknowledging) is (for the sake of this discussion) called the 
  382. producer.
  383.  
  384. When sending a packet, the producer uses the pri field to determine when the 
  385. packet 
  386. may be sent, in terms of the number of fair and priority packets that have already 
  387. been sent in the fairness interval. A fair packet is one in which pri is 0; a 
  388. priority packet is one in which pri is 1.
  389.  
  390. A producer may sends only one fair packet in each interval. A producer may send 
  391. more 
  392. than one priority packet in each interval, with the constraint that the number of 
  393. priority packets (Np) is related to the number of previously-send fair packets in 
  394. the same interval (Nf), as follows:
  395.  
  396.     Np <= 3 + 3*(Nf)
  397.  
  398. This ensures that priority packets are able to get most (3/4) of the bandwidth.
  399.  
  400. If a prioritized packet passes through a bridge, and the bridge supports priority, 
  401. the bridge would behave similarly when forwarding the transaction to an adjacent 
  402. bus. Bridges are encouraged, not required, to support priority arbitration.
  403.  
  404. Note that setting of the pri bit within packets is done based on task, not node 
  405. priority. For example, the priority is expected to be set by the I/O driver when a 
  406. DMA command chain is generated, and could be different for each DMA chain which is 
  407. processed. Since the location of the pri bit (within a CSR or DMA command-chain) 
  408. is 
  409. I/O-unit dependent, it need not visible in any of the node's CSRs.
  410.  
  411. This has been significantly simplified since the last proposal, based on inputs 
  412. from 
  413. Ed Gardner. In particular, the multiple priority bits was reduced to 1 (keep it 
  414. simple), and the dynamically-changing bit (changes after one packet is sent) was 
  415. eliminated.
  416.  
  417. Title: Forward Progress Protocols.
  418.  
  419. Author: Dave James, Apple Computer
  420. Status: Action item from May 92 meeting.
  421.  
  422. The fair-acceptance protocols are critical for memory-mapped resources that are 
  423. shared and may become heavily loaded. An example is a semaphore location, which 
  424. has 
  425. one processor spinning on it (waiting for the semaphore release) and another 
  426. processor trying to release the semaphore. In the absence of fair-acceptance 
  427. protocols, the releasing processor might always be busied when its requests are 
  428. retried (due to conflicts with the other polling processors).
  429.  
  430. Fair-acceptance protocols are also critical for split-response buses, where the 
  431. detection of transmission errors is based on not receiving the response within a 
  432. pre-specified interval (as specified by the 1212-defined SPLIT_TIMEOUT register). 
  433. Without fairness, any timeout value may be exceeded under transient heavy-load 
  434. conditions.
  435.  
  436. Random retry protocols do not eliminate these false timeouts, they only reduce the 
  437. frequency at which they occur. On a multiple-bus system, these false timeouts are 
  438. hard to differentiate from real "hardware-error" timeouts, making recovery from 
  439. such 
  440. timeouts a non-trivial task.
  441.  
  442. The typical fair-acceptance solutions proposed by the hardware designers (punt the 
  443. problem to the I/O driver) doesn't work well in many environments and is not 
  444. appreciated by the I/O driver writers (who were, after all, promised a reliable 
  445. memory-mapped programming model). Since I/O driver software has now become the 
  446. limiting factor in many I/O-product integration schedules, their needs are 
  447. becoming 
  448. increasing important.
  449.  
  450. However, forward progress acceptance protocols are not always needed. Forward 
  451. progress is not a concern when using a simple (normally slave-only) SerialBus 
  452. power-
  453. supply monitor, since that's not likely to be actively shared by multiple 
  454. processors.
  455.  
  456. Forward progress is needed on memories and general-purpose bridges, since that 
  457. bounds the value that should be placed in the SPLIT_TIMEOUT register. However, we 
  458. don't really expect to have many SerialBus memories and many of the initial 
  459. bridges 
  460. are likely to connect to higher-bandwidth vendor-specific buses (which may never 
  461. need to assert busy).
  462.  
  463. Thus, there are likely to be applications that choose to not support forward 
  464. progress protocols. To avoid compatibility conflicts, the forward-progress 
  465. protocols 
  466. should support the used of non-supportive producers and consumers.
  467.  
  468. As background, the forward-progress protocols on SCI (from which the SerialBus 
  469. protocols were derived) can be bypassed. This supports the sending of new packets 
  470. (which have not been previously busied) while the oldest previously-busied packet 
  471. (which has obtained an acceptance reservation in its corresponding consumer node) 
  472. is 
  473. being retried. The same kind of "bypass" protocols can be used on SerialBus, by 
  474. nodes which choose to not support the fair-acceptance protocols.
  475.  
  476. Thus, I would propose that producers support four subaction-send phases. The NOTRY 
  477. phase would always be used by producers that never support fair-acceptance and/or 
  478. priority producers that (before being busied) temporarily bypass the fair-
  479. acceptance 
  480. protocols. This and the other producer phases are listed below:
  481.  
  482.   NOTRY
  483.   DOTRY
  484.   RETRY_A
  485.   RETRY_B
  486.  
  487. On supportive producers, the NOTRY or DOTRY phase may be used on the first packet 
  488. transmission. Thereafter, the retry-phase would be the same as that returned in 
  489. the 
  490. acknowledge. Supportive nodes would be required to retry each RETRY_A or RETRY_B 
  491. transmission in every fairness interval.
  492.  
  493. Similarly, the consumer of these subactions returns the following status codes:
  494.  
  495.   DOTRY
  496.   RETRY_A
  497.   RETRY_B
  498.  
  499. Where the phase indicates the desired producer-phase to be used in the next 
  500. retransmission. An unsupportive consumer would always return a DOTRY phase. The 
  501. phase returned by a supportive consumer is defined by the four-state diagram 
  502. previously presented (SERVE_A, SERVE_NA, etc.).
  503.  
  504. An unsupportive producer always sends its subactions using the NOTRY phase. An 
  505. unsupportive consumer always acknowledges with a DOTRY phase status.
  506.  
  507. Another point that should be clarified is that any requester/responder producer 
  508. should keep two fairness bits (fb), one for requests and one for responses, to 
  509. avoid 
  510. deadlock. Thus, these nodes may be transmitting and/or retransmitting two packets 
  511. (one request and one response) during each fairness interval.
  512.  
  513. For each active reservation, the previously-busied packet shall be retries once 
  514. and 
  515. only once during each transaction interval. This applies to prioritizes as well as 
  516. fair transactions.
  517.  
  518. Another question was "how long should a node continue to retry, after being 
  519. busied". 
  520. My response was that the answer should be based on wall-clock time (for 10mSec, 
  521. for 
  522. example) rather than a count of retries. That seemed to be OK, except it was 
  523. different than the first planned implementations.
  524.  
  525. Ed Gardner noted that two times might be need; a SPLIT_TIMEOUT indicates how long 
  526. to 
  527. wait for responses and a BUSY_TIMEOUT would indicate how long to continue 
  528. retrying. 
  529. One option would be to default the BUSY_TIMEOUT to the SPLIT_TIMEOUT value, if the 
  530. BUSY_TIMEOUT register were not provided. We agreed to continue this discussion on 
  531. the reflector. 
  532.