Podule
Podules are the main form of expansion card used on Archimedes computers.
Physical description
Standard podules, Coprocessor podules, DEBI podules
Podules are implemented on Eurocard-sized PCBs of 100mm x 160mm. They connect to the host computer via a 3x32 pin male DIN 41612 connector. On a standard 16-bit podule the middle row of pins on the connector is unused and are usually not physically present. The middle row is present on coprocessor and DEBI podules. The backplate is 130mm x 25mm.
Some podules are "double width", using a PCB of 234mm x 160mm. These physically occupy two slots, though only one slot is connected to. Double width podules were deprecated with the RiscPC, which has no provision for fitting them.
Mini podule
Mini podules were introduced with the A3000 and also implemented on the A3010, A3020 and A4000. The mini podule PCB is nominally 161.8mm x 68.0. The back plate is 172mm x 25.6mm, with the outer 8mm recessed into the case. Mini podules connect via a set of pin headers, with 44 pins total.
A3020/A4000 Network Interface expansion
The A3020 and A4000 implement a limited podule connector as a superset of the Econet module connector. The Network Interface card connects via a set of pin sockets, with 39 pins total. The PCB is 895mm x 482mm. There is no back plate for ports, instead the card is connected to a 15-pin D connector on the back of the computer.
RiscPC Network Interface
The RiscPC network interface is implemented on an 85mm x 75mm PCB. The back plate is 576mm x 180mm, with 396mm exposed externally and available for connectors.
Technical description
Standard 16-bit podules
Standard podules have two address areas, corresponding to two distinct types of access, referred to as "podule" and "module" space. Both address areas are 16 kB in size, but as only half of the 32-bit ARM data bus is connected there is effectively 8 kB available.
"Podule" address space corresponds to IOC controlled accesses. IOC provides four types of access timing, which are exposed to the CPU as four mirrors of the podule address space. The maximum access timing is 5 cycles of the 8 MHz IO clock, giving a maximum transfer speed of 3.2 MB/sec.
"Module" address space is nominally controlled by MEMC, however the podule is in control of the access timing via the ~IOGT signal. This allows accesses to be "stretched" if required, allowing interfacing to hardware & memory where access timing can not be guaranteed. The minimum access timing is 2 cycles of the 8 MHz IO clock, giving a maximum transfer speed of 8 MB/sec. The maximum access timing is given as 10 us, after which ARM2 CPU state can not be guaranteed.
Interrupt functionality is provided by one IRQ line and one FIQ line, which are shared between all podules in the system.
IOC's I2C bus is exposed to the podule bus.
Podule address space must start with a ROM. At a minimum this contains an Expansion Card Identity, to indicate a podule is present. Almost all podule ROMs contain some kind of text identification, allowing them to show up in the *podules command. The majority also contain one or more RISC OS Module providing driver functionality. ROM modules are copied to RAM before execution. Due to the limited address space, ROMs are almost always banked.
Coprocessor podule
The coprocessor podule was a short lived podule variation only implemented on the Archimedes 440 and Archimedes 400/1 series. This connects to the ARM2 coprocessor bus via the normally unused middle row of pins.
Coprocessor podules were effectively deprecated with the introduction of the ARM3, as the coprocessor bus is no longer connected. The RiscPC, A7000 and A7000+ reuse the middle row of pins for the DEBI bus.
Mini podule
Mini podules are extremely similar to the standard 16-bit podule, except that the data bus is only 8 bits wide. Both podule and module address spaces are available, however the smaller data bus means only 4 kB is usable by both, and maximum bandwidths are 1.6 MB/sec and 4 MB/sec respectively.
I2C is also available on the mini podule.
DEBI podule
DEBI comprises of two improvements on the standard podule. The EASI address space provides a 16 MB address space per podule, with a 32-bit data bus. Timings are similar to the "podule" address space, with maximum bandwidth of 6 MB/sec. EASI is available on the RiscPC, A7000 and A7000+ computers.
The second improvement is DMA functionality. DEBI podules can request reads or writes which are serviced by IOMD. This allows for up to 8 MB/sec bandwidth, without CPU involvement. DMA is only available on the RiscPC, and only on the first two podule slots.
A3020/A4000 Network Interface
The A3020/A4000 network interface is a subset of the mini podule bus. Both podule and module address spaces are available, however only 4 kB of space of each is actually decoded, resulting in 1 kB usable once the 8-bit data bus is taken into account. FIQ and I2C functionality is not available.
RiscPC Network Interface
The RiscPC network interface is a subset of the DEBI podule bus. A 16-bit data bus and 1 kB of address space (512 bytes usable) are provided. FIQ and I2C functionality is not available.
As address space is limited, the network interface card must implement an address counter to allow the ROM to be read serially.
DMA is available on the RiscPC. On the A7000 and A7000+ DMA is not available and the DMA pins on the connector are assigned as analogue inputs for the unreleased A7000 joystick interface.
Backplanes
Standard podules require a backplane to connect to.
Archimedes 440, Archimedes 400/1 series, Archimedes 540, A5000 and A5000 Alpha shipped with a 4 slot backplane as standard.
The Archimedes 300 series shipped without a backplane. A 2 slot backplane was available from Acorn as an upgrade. Third party manufacturers sold four slot backplanes.
The RiscPC was supplied without a backplane in the minimum configurations. Otherwise the backplane depended on how many slices were present. Each slice could hold two podules, for a maximum of 8 podules in a 4 slice machine.
The A7000 and A7000+ machines shipped without backplanes. A single slot backplane was available from Acorn as an upgrade, however due to the limited size of the case fitting a podule prevented the 5.25" drive bay from being used.
Implementations
Machine | Standard podules | Mini podule | Coprocessor podule | DEBI podule | A3020/4000 network | RiscPC network |
---|---|---|---|---|---|---|
Archimedes 300 series | 0-4 (backplane dependent) | No | No | No | No | No |
Archimedes 440 | 4 | No | Yes | No | No | No |
Archimedes 400/1 series | 4 | No | Yes | No | No | No |
Archimedes 540 | 4 | No | No | No | No | No |
A3000 | 1 (external) | Yes | No | No | No | No |
A3010 | No | Yes | No | No | No | No |
A3020 | No | Yes | No | No | Yes | No |
A4000 | No | Yes | No | No | Yes | No |
A5000 | 4 | No | No | No | No | No |
A5000 Alpha | 4 | No | No | No | No | No |
A7000 | 1 (optional) | No | No | 1 (optional, no DMA) | No | Yes |
A7000+ | 1 (optional) | No | No | 1 (optional, no DMA) | No | Yes |
RiscPC | 2 per slice | No | No | 2 per slice (DMA on first 2) |
No | Yes |