Image Map Image Map
Page 1 of 4 1234 LastLast
Results 1 to 10 of 37

Thread: Tandy 1000 A/EX/HX DMA speed-up

  1. #1
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default Tandy 1000 A/EX/HX DMA speed-up

    I just read yet another post today from someone claiming adding the DMA memory expansion card to a 1000 {A, EX, HX} made the machine 'faster'. I would really like someone to explain this one to me at a technical level as I don't understand how this was verified. A couple theories:

    1) With an 8237A, DRAM refresh could be off-loaded from a CPU timer interrupt. The Tandy variation of the 8-bit slot has HOLD/HLDA and 20-bits worth of addressing. So it could, in theory, do automatic scheduled DRAM refresh for all lower system memory. However, has anyone ever found evidence (BIOS fragment, benchmark, etc), that this is the case?

    2) With an 8237A, floppy sector transfers could be offloaded to the DMA controller and not done via PIO (move + in/out + loop). However the BIOS routines are synchronous. The CPU doesn't have anything to do but continuously poll status registers or marshal the result. PIO loops 6 bytes or less may not generate any instruction fetches. But, the wait states on the data register I/O movement instruction could be saved per byte via DMA. And the floppy DMA req/ack lines are also present on the ISA slot. But again, has anyone ever found evidence (BIOS fragment, disk I/O benchmark, etc) that the BIOS floppy transfer routines really do auto-detect an 8237A and adjust?

    3) Other known speed up mechanisms?

    I find it *very* hard to believe that at least the 1000/1000A BIOS writers were so forward thinking they would have included advanced support for #1 or #2. Maybe on the EX and HX. However I've disassembled much of that BIOS in the past and don't recall ever finding 8237A-related code. I think it's more plausible that they changed the IBM 8-bit slot pins slightly so that DMA support could be added in the future to support an as-yet undefined peripheral use case - there is still one unused channel ack/req set on the Tandy 8-bit bus.

    If you know for a fact how the machine is sped-up and can point me to either benchmark data or a BIOS location, please educate me! Thanks!
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

  2. #2
    Join Date
    Mar 2016
    Location
    Georgia, USA
    Posts
    534

    Default

    Quote Originally Posted by eeguru View Post
    I just read yet another post today from someone claiming adding the DMA memory expansion card to a 1000 {A, EX, HX} made the machine 'faster'. I would really like someone to explain this one to me at a technical level as I don't understand how this was verified. A couple theories:

    1) With an 8237A, DRAM refresh could be off-loaded from a CPU timer interrupt. The Tandy variation of the 8-bit slot has HOLD/HLDA and 20-bits worth of addressing. So it could, in theory, do automatic scheduled DRAM refresh for all lower system memory. However, has anyone ever found evidence (BIOS fragment, benchmark, etc), that this is the case?

    2) With an 8237A, floppy sector transfers could be offloaded to the DMA controller and not done via PIO (move + in/out + loop). However the BIOS routines are synchronous. The CPU doesn't have anything to do but continuously poll status registers or marshal the result. PIO loops 6 bytes or less may not generate any instruction fetches. But, the wait states on the data register I/O movement instruction could be saved per byte via DMA. And the floppy DMA req/ack lines are also present on the ISA slot. But again, has anyone ever found evidence (BIOS fragment, disk I/O benchmark, etc) that the BIOS floppy transfer routines really do auto-detect an 8237A and adjust?

    3) Other known speed up mechanisms?

    I find it *very* hard to believe that at least the 1000/1000A BIOS writers were so forward thinking they would have included advanced support for #1 or #2. Maybe on the EX and HX. However I've disassembled much of that BIOS in the past and don't recall ever finding 8237A-related code. I think it's more plausible that they changed the IBM 8-bit slot pins slightly so that DMA support could be added in the future to support an as-yet undefined peripheral use case - there is still one unused channel ack/req set on the Tandy 8-bit bus.

    If you know for a fact how the machine is sped-up and can point me to either benchmark data or a BIOS location, please educate me! Thanks!
    I believe the confusion is because the PCJr does appear to be much slower without DMA due to dram refresh overhead, but Tandy 1000 systems handled ram refresh with dedicated motherboard hardware that had little to no performance impact.

    *edit*
    http://www.vcfed.org/forum/showthrea...ess-Tandy-1000
    */edit*

  3. #3
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default

    Quote Originally Posted by keenerb View Post
    I believe the confusion is because the PCJr does appear to be much slower without DMA due to dram refresh overhead, but Tandy 1000 systems handled ram refresh with dedicated motherboard hardware that had little to no performance impact.
    That isn't the reason. DRAM refresh cycles are not a large impact (~5% maybe). The PCjr was slow because it had single ported RAM and the video graphics controller had to arbitrate and interleave access from itself tracing out the current frame buffer and CPU general accesses. It wasn't because of a lack of 8237A.
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

  4. #4
    Join Date
    Dec 2016
    Location
    New Jersey
    Posts
    267

    Default

    Tandy 1000s all have single ported RAM as well. The TX and TL series have dedicated video ram as an option, which provides a huge speed increase on processor intensive work if installed.

    The CPU has to continually poll the keyboard on the PC Jr. but not on the Tandy as if I remember correctly Tandy included the extra circuitry to prevent this.

    DMA probably did have a greater speed up effect on the PC Jr.

    Anyone ever try a word processor that allows you to keep editing while printing a document (to a common printer that has a small or no buffer)? That would be a good test of DMA.

    I just sold my Tandy 1000EX with DMA I wish I had kept it to run a few benchmarks/tests.

  5. #5
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,002
    Blog Entries
    1

    Default

    This should be easy to test since the DMA was provided by the RAM upgrade:

    1. Find any Tandy 1000 or 1000A
    2. Does it have 128KB? Perform your testing.
    3. Does it have more than 128KB? Rip the memory board out, then perform your testing.

    Of course, now you're going to ask me to get my 1000 out of storage. I'll be in a position to do that in a few weeks, I'll try to remember.
    Offering a bounty for:
    - The software "Overhead Express" (doesn't have to be original, can be a copy)
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  6. #6
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    32,012
    Blog Entries
    18

    Default

    I believe that the PCJr used the NMI to handle keyboard servicing. So not polling.

  7. #7
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default

    Quote Originally Posted by Chuck(G) View Post
    I believe that the PCJr used the NMI to handle keyboard servicing. So not polling.
    Correct.
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

  8. #8

    Default

    I hace a T1K I can test with and without DMA. Someone have a boot disk image they can mail me with a benchmarking program. I'll run it.

  9. #9
    Join Date
    Mar 2006
    Location
    Massachusetts, USA
    Posts
    1,884

    Default

    The PCjr.'s keyboard reading routines were slow in part because there is no serial to parallel shift register to handle the work of forming a complete byte from the keyboard for the PC to read. So the PCjr's processor itself has to read the port more often and perform the work of deserializing the reads which the PC's processor did not have to do.

    Tandy came up with the ingenious idea of arraying memory that was controlled by the video display controller as a 16-bit array. This gave the controller a very high video bitrate, allowing the video to keep pace with the system instead of being a bottleneck. The array looked to be 8-bit to the 8088 CPU.

    The video display controller can handle the refresh of 128KB of DRAM in the Tandy 1000/A/HD and 256KB of DRAM in the Tandy 1000 EX & HX. The remainder is handled by a DMA chip when added to the system with a RAM upgrade. Alternatively, there have been some solutions recently which have used SRAM, which is easier to implement and does not need constant memory refresh.

    This thread may be useful in this discussion : http://www.vcfed.org/forum/showthrea...ess-Tandy-1000
    My Retro Computing and Vintage Gaming Blog : http://nerdlypleasures.blogspot.com/

  10. #10
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,002
    Blog Entries
    1

    Default

    Quote Originally Posted by kb2syd View Post
    I hace a T1K I can test with and without DMA. Someone have a boot disk image they can mail me with a benchmarking program. I'll run it.
    I'll make a bootable 360K image of the TOPBENCH stub program when I get home and reply back. (Even if we prove it with a different benchmark, I'd like the results for the database.)
    Offering a bounty for:
    - The software "Overhead Express" (doesn't have to be original, can be a copy)
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •