Path: utzoo!utgpu!attcan!uunet!mcvax!ukc!acorn!RWilson From: RWilson@acorn.co.uk Newsgroups: comp.arch Subject: Some facts about the Acorn RISC Machine Keywords: Acorn RISC ARM Message-ID: <543@acorn.UUCP> Date: 2 Nov 88 18:03:47 GMT Sender: andy@acorn.UUCP Lines: 186 There have now been enough partially correct postings about the Acorn RISC Machine (ARM) to justify semi-official comment. History: ARM is a key member of a 4 chip set designed by Acorn, beginning in 1984, to make a low cost, high performance personal computer. Our slogan was/is "MIPs for the masses". The casting vote in each design decision was to make the final computer economic. The chips are (1) ARM: a 32 bit RISC Microprocessor; (2) MEMC: a MMU and DRAM/ROM controller; (3) VIDC: a video CRTC with on chip DACs and sound; and (4) IOC: a chip containing I/O bus and interrupt control logic, real time clocks, serial keyboard link, etc. The first ARM (that referred to by David Chase @ Menlo Park) was designed at Acorn and built using VLSI Technology Inc's (VTI) 3 micron double level metal CMOS process using full custom techniques; samples, working first time, were obtained on 26th April 1985. The target clock was 4MHz, but it ran at 8. The timings that David gives are for the ARM Evaluation System, where ARM was run at 3.3MHz and 6.6MHz (20/3) for initial and page-mode DRAM cycles, respectively. The ARM comprises 24,000 transistors (circa 8,000 gates). Every instruction is conditional, but there are neither delayed loads/stores nor delayed branches (sorry, Martin Hanley). Call is via Branch and Link (same timing as Branch). All instructions are abortable, to support virtual memory. The first VIDC was obtained on 22nd Oct 1985, the first MEMC on 25th Feb 1986, and the first IOC 30th Apr 1986. All were "right first time". We then redesigned ARM to make it go faster (since, by this time, Acorn had decided roughly what market to aim the completed machines at and 8MHz minimum capability was required - but we did continue to develop software on the 3 micron part!). Some more FIQ registers were added, bringing the total to 27 (some of our "must go as fast as possible for real time reasons" code didn't manage with the smaller set). A multiply instruction (2 bits per cycle, terminate when multiplier exhausted so that 8xn multiply takes 4 cycles max) and a set of coprocessor interfaces were added. Scaled indexed by register shifted by register (i.e. effective address was ra+rb<