Microprocessors at Swansea

I arrived in Swansea in May 1974, to work on the SERC-funded Multi-Microprocessor project, so-called CYBA-M. Prior to this, I had heard a lecture by Prof David Aspinall, in Glasgow (at an IEE Colloquium, Autumn 1973) in which he outlined the basis of the work, that due to complexity, for any given technology, memories would always be ~ x10 faster than complex digital i.c.s. Therefore, it should be possible for 10 processors to share a common memory and co-operate on tasks, without degradation to their performance. Interestingly, throughout the Distributed Computing Systems (DCS) funding, there were the two major projects, CYBA-M, a closely-coupled system and one at Sussex, under Prof Dick Grimsdale, with Fred Halsall as his lieutenant, which was (today, retrospectively) a more modern-looking loosely-coupled network of PCs. I still believe that CYBA-M was never fully exploited, to examine some of the queuing issues still pertinent in accessing common media (memory, busses, switches, whatever) in today’s shared networks. Had it been, closely-coupled systems might have had more mileage.

At the time of my arrival, Erik Dagless had just commissioned the first CYBA-0, the “computer in a shoebox” based on the I8008. This used front-panel control switches and displays for its monitor and was genuinely non-intrusive (i.e. demanded none of the processor resources to be reserved for its operation). Some 30 years later, we’ve reached the stage of putting dedicated monitor resources on-chip, to free-off those possibly needed by the system, should monitoring be required! There was also a “distributed” version, where the monitor panel could be unplugged, once the program was loaded and started, leaving the embedded system still working. We worked to develop CYBA-80, an 8080-based machine which was to be the console for CYBA-M. The 8080 used was the 2nd brought to the UK by Intel’s distributor, Rapid Recall and cost ~£250. CYBA-M itself was 16 x 8080 processors (each using 2 x 8” square pcbs) each with a local memory and access to a shared (global) memory and “virtual” memory space, for IO. Memories were based on 1K x 1 chips, with the “high-speed” global memory using 70ns devices! [Several papers available describing this.] Paper-tape was used for back-up storage and I got quite adept at manually editing and splicing tape (tools were available for such); I could even re-compute and edit the checksum!

Around 1978 or 79, David Aspinall moved to UMIST and Erik and the project went with them. For a variety of reasons, I decide it was time to “make the break” and stayed here. Roy Dowsing, the CSc representative on the team (!) went to East Anglia around the same time but collaboration continued and several papers (Aspinall, Dagless & Dowsing) were published on the software development regime and environment needed for multiprocessing. [Influences of Hoare’s CSP, Occam etc, which were all contemporary.]

About 1975 or 76 we ran the first 2½-day “Introduction to Microprocessors” workshop for 20 delegates, based on the I8008 machines (Aspinall, Dagless, Dowsing, John Mason and Lincoln Bennett lecturing, myself and others demonstrating). We ran the 2nd for the IEE (at Swansea) and subsequently ran them twice per year for a number of years. We also took it “on the road” 5 or 6 times, dedicated to interested companies. The original Aspinall & Dagless book “Introduction to Microprocessors” (1977) is largely the lecture notes used then.

By the time they moved to UMIST, I had left the team and was pursuing my PhD on monitoring the multi-processor performance. In 1980 I was appointed as a University lecturer to teach Microprocessors to anyone interested (other Depts .. even local firms). In 1983 I was assimilated into Electrical Engineering, continuing to teach (largely) micros. Part of that initiative enabled us to re-equip the teaching labs with I8085-based Quarndon kits, which were sufficiently modular to allow a variety of memory and IO configurations to be set up. Back-up storage was to magnetic tape-cassettes (dictaphone). The monitor here was software-based, through a VDU, including a line-by-line assembler and dis-assembler. The monitor was largely re-written, in house, to improve many of the features (e.g. forward referencing in the assembler; trace; breakpoints). These served us well for a number of years.

Around this time, the University (like so many others) also set up the Microprocessor Centre, staffed by Adrian Poulton, Tim Davies and Steve Hosgood (amongst others). They had a state-of-the-art HP MDS, with in-circuit emulation pods etc. Tim can clearly say much more about what the Centre achieved and how it worked.

Further developments in teaching were enabled by the Department’s PDP-11, running multi-user BASIC (see later). On this, we were able to mount an 8085 cross-assembler and small-c, an 8085 cross-compiler for a cut-down, integer version of C. [The small-c compiler demonstrated an interesting aspect of computer performance. A single compilation ran “instantaneously” but if several were issued “simultaneously”, nothing productive happened, as the multi-user system spent most of its time swapping tasks! We implemented a manual queue, so that students ran the compiler sequentially; we never quite made it to implementing a spooler!] These were used for remote software development and routines developed to download the object code over serial links. This was a highly important component in the successful prototyping of what is now our L2 GDE (Group Design Exercise). [Pick-and place robot-arm; digital storage scope exercises.] We also installed Tiny-BASIC (integer version) on the Q-kits (Richard Artym).

Regrettably (?!) in the last move, I think I dumped most of the documentation for many of these developments!

Since then, over a couple of iterations we have up-graded the teaching facilities to the present MC68HC08 microcontroller, using PC-based IDEs.

By 1974, the joint (EEE & CSc) Computer Technology Degree scheme was already in place. Around the early 1980s it was superseded by ECS and CSE. My perspective on these is that they have always attracted a cohort (albeit never very many) of decent, motivated, focussed students, presumably because they have identified precisely that they are interested in that aspect of embedded or applied computing.

When I arrived here, Campus computing was to an ICL machine running the George-3 operating system. Elec Eng had 2 teletypes on the 5th floor which were bookable in ½-hour slots. They were reasonably used (FORTRAN programs; also a simple net-list based logic simulator). Prof John Oldfield was instrumental in resurrecting the PDP-11, also on the 5th floor and installing multi-user BASIC, which almost instantaneously made the teletypes redundant; they became available on demand and the PDP-11 became the bookable resource. If ever there was a demonstration of demand filling the available capacity, this was it. The tower-block ceilings are probably still full of serial cables as we all ran lines to our offices via numerous manual and electronic patch-panels and switches.

Richard Artym and John Mason were responsible for setting up our first PC network (also 5th floor) – late 80s / early 90s? .. Mike Rodd’s era. Very much the pre-cursor of the present teaching set-up! [Based on a visit to Leeds Uni. for inspiration.] – see John for further details.

We had also, at that time the network of 12 or so Apollo workstations which were used for Civil, Mechanical and Electrical CAD teaching. That was an interesting time, as we struggled to run various demanding CAD suites that were designed, really, for stand-alone operation. Electrical suites, certainly, were often released as little better than Beta-versions because of the commercial pressure to get to market and the fast pace of i.c. development requirements. Today’s PC versions are staid by comparison!

A pre-Swansea footnote:
I tell the following to our students often, when they complain about lack of computers, or poor user-interfaces:

I was fortunate in my Heriot-Watt Degree (1968-72) (didn’t think so at the time .. but in retrospect, as my career has panned out ….!) Our Computer Centre manager was a far-thinking individual (McTernan, I seem to recollect .. not unlike Alan Gilmour, here) who persuaded our HoD that Engineers really ought to have some experience of programming. We were, therefore, given a compulsory but non-examinable course in programming and using the Centre machine. Input was by cards, one instruction per card. Turn-round was 24-hours. Your job stopped on the first syntax error, so for weeks on end we would call in to pick up our print-out, which would tell us there was an error on card 5 .. then tomorrow, on card 6 and so on. Boy, did it teach you accuracy! Several weeks before you even tested your algorithm or generated results.

I went from there to Burroughs Machines in Glenrothes (before I came here) and ended up designing a control i.c. for a tape-drive. Burroughs had experience of i.c. design – they had their own bit-slice processors (Bourbon set; Beryllium set). The process was simple .. it was breadboarded on an enormous array of CMOS-pair i.c.s using wire-wrap. How anything significant ever worked is beyond me. I was sent to London to work on a simulator in a main-frame Computer Bureau. Again, input was by cards, one net-list per card. We were given access over-night, me and the project manager, on our own, in the bowels of a large building by Liverpool St. station from about 9.00 pm to 7.00 am! By Wednesday, we’d managed to get the simulator to accept input and generate results; I was left there ‘till Friday to get some useful results - I remember, I was moved to the Churchill Hotel – ah, happy days!

.. and that’s only 30 years ago! Of equal interest to me of course is how my career developed from these early experiences, to software development and i.c. simulation.