• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Compact Macintosh framebuffer/video out design?

ZaneKaminski

Well-known member
Hello all,

First post here. :)

I am trying to understand the video output circuitry of the later compact Macintoshes.

I understand the Apple II's design... the RAM can run at twice the speed as the processor, so the video/DRAM refresh circuitry and the 6502 can interleave access to the memory. Got it.

In the 128k Mac, the 68000 runs at more than twice the maximum speed of the memory, so the glue logic has to insert wait states in the memory access, delaying it so that it takes twice the time to access memory, but only during the active periods of the video display, and not during the horizontal or vertical blanking intervals. Got it. I understand this timing to be unchanged in the 512k Mac and the Mac Plus.

68k Macintoshes supporting color, including the Mac II, LC, and Color Classic series, have dual-ported VRAM, so they don't have to manage contention for the bus like Burrell's design did.

But what about the SE, SE/30, Classic, and Classic II? My specific questions are as follows:

  • I have heard claims that the SE and the Classic, with the same ~8 MHz 68000, are some 25% faster than the 128k/512k/Plus. I assume this must be because the glue logic works differently. How?
  • Does the SE/30 have VRAM? I assume so, since it's said to basically be a Mac IIx, but the B&W display makes me think otherwise.
I will appreciate any response; I know these are not the easiest or most trivial questions.

Zane Kaminski

 
Last edited by a moderator:

Elfen

Well-known member
The Classic B/W Macs all had the same buffer/frame rate as they all used the same video circuitry on the analog board for the video. The video produced on the logic board end had to be signal compatible to the analog board. This was not a problem with the machines; with the 68Ks it was tied into the CPUs, with the '030s, they were tied to a separate video "card" on the logic board.

 

ZaneKaminski

Well-known member
Thank you for the info.

Can anyone provide any info on the memory access timings for the SE and Classic?

What about the Classic II? Did it have an integrated display controller similar to the one included on the IIci or IIsi? I have confirmed that there are VRAM chips on the SE/30 logic board, but all info indicates that the Classic II has a lower-cost solution, probably putting the display into main DRAM. Any info on the Classic II display controller would be of great help to me.

Zane Kaminski

 
Last edited by a moderator:

Bunsen

Admin-Witchfinder-General
I would suggest hunting down copies of the Apple Developer Notes for each machine, and/or the Inside Macintosh PDFs that cover their video generation.

 
Last edited by a moderator:

bigmessowires

Well-known member
Check out this post for some investigation I did on video memory timing for the early compact Macs: http://www.bigmessowires.com/2011/08/25/68000-interleaved-memory-controller-design/ A lot of it is educated guesswork. I've never found any definitive documentation on this topic.

In the 128k Mac, the 68000 runs at more than twice the maximum speed of the memory, so the glue logic has to insert wait states in the memory access, delaying it so that it takes twice the time to access memory, but only during the active periods of the video display, and not during the horizontal or vertical blanking intervals.
I don't think that's quite accurate - the CPU doesn't run faster than the memory can handle. The 8 MHz 68000 requires four clock cycles to perform a memory access, so that's 500 ns per memory access. If you look at the 68000 bus timing, it's actually only two clock cycles (or two and a half?) between when the address strobe is asserted to when data is read from RAM. So two clock cycles at 8 MHz is 250 ns, which is the required DRAM speed of the Mac.

The issue is that the access to RAM needs to be shared somehow between the CPU and the video display circuit - they can't both access RAM at the same time. That's where the glue logic you mentioned is relevant, and it stalls the CPU (by not asserting /DTACK, I believe) while the video circuit is accessing RAM, just as you said. 

To generate 512 x 342 video at 60 fps, with some extra time for the blanking periods, the video circuit must output pixels at a rate of 16 MHz, exactly twice the CPU clock speed. Each pixel is 1 bit, and pixel data is fetched from memory 16 bits at a time. To output pixels at 16 MHz, the video circuit must access RAM 1 million times per second, fetching 16 bits each time.

On the 128K/512K/Plus, I think a RAM access by the video circuit takes the same amount of time as a CPU access: 4 clock cycles or 500 ns. So the glue logic lets the CPU have RAM access for 4 clock cycles, then gives the video circuit access for 4 clock cycles. This results in one video access every 8 clock cycles at 8 MHz, achieving the required 1 million video circuit accesses per second. The end result is that the CPU only gets 50% of the available RAM bandwidth.

On the Mac SE, I think a RAM access by the video circuit only takes 2 clock cycles or 250 ns. I'm not certain how this is achieved, but since the RAM is already rated for 250 ns, it shouldn't be difficult. Since the access is made by a dedicated counter and the video shift register instead of a 68000 CPU, there's no need to adhere to the 68000's 4-clock cycle bus timing. So the glue logic lets the CPU have RAM access for 6 clock cycles, then gives the video circuit access for 2 clock cycles. The end result is that the CPU gets 75% of the available RAM bandwidth, providing a nice performance boost, even though the CPU speed is the same as the 128K/512K/Plus.

I don't know anything about how the Classic II works - I would have guessed it was similar to the SE/30. I don't believe the SE/30 has any dedicated VRAM, but I'm not 100% certain.

 

Gorgonops

Moderator
Staff member
I don't know anything about how the Classic II works - I would have guessed it was similar to the SE/30. I don't believe the SE/30 has any dedicated VRAM, but I'm not 100% certain.
The SE/30 does. The video memory is in the form of 2x 41264 dual-port video buffers that add up to a 64kx8 bit VRAM. (Enough space for two video pages, same as the other compacts.) There's also a 2764-equivalent ROM associated with the video hardware, so the whole setup basically emulates a really stripped down minimal Nubus video card, which makes sense given the SE/30's close relationship with the Macintosh IIcx

The Classic II on the other hand uses system RAM. The EAGLE memory controller handles all the magic for that. (I imagine the details are similar to systems like the IIsi, which likewise used "vampire video".)

 

ZaneKaminski

Well-known member
I've managed to collect the developer notes for a few machines, but unfortunately I've never been able to find the notes for the SE or SE/30.

Thank you for your great response, bigmessowires. Your website has some great info as well. Of particular interest was a link I found in the comments about the Unitron Mac 512k clone.

 

Gorgonops

Moderator
Staff member
I've managed to collect the developer notes for a few machines, but unfortunately I've never been able to find the notes for the SE or SE/30.
There's a copy of the "Guide to the Macintosh Family Hardware" on archive.org. (Not linking it directly because its legal provenance is sort of a gray area, despite it being unlikely anyone will care. It's easy enough to Google.) It covers those systems to about the same level of detail (perhaps a bit more) than the stand-alone developer notes for the later machines. It has a block diagram and an explanation of how the SE/30's video system is basically a brain-dead Nubus card, but just scanning it I didn't see a detailed explanation of how the SE differs from the Plus. Might be in there but the Dev notes don't generally go that deep.

 
Top