A new article about the first ARM processors

on-topic Acorn-related news and discussions not covered by the other forums
Post Reply
litwr
Posts: 199
Joined: Sun Jun 12, 2016 8:44 am
Contact:

A new article about the first ARM processors

Post by litwr » Sun Oct 07, 2018 8:11 pm

I have just published an article about the first ARMs - https://litwr.livejournal.com/2509.html - it is a part of a series - https://litwr.livejournal.com/tag/hardware. Any comments, critics, additions? Thank you.
Last edited by litwr on Sun Oct 07, 2018 8:14 pm, edited 1 time in total.

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Sun Oct 07, 2018 9:01 pm

Glad you included the final note about Apple being saved by their ARM shares! It's also the case that Apple were responsible for ARM being spun out of Acorn, as they were nervous of sourcing a CPU from a direct competitor. So, the companies saved each other.

Funny that I hadn't really noticed the lack of 16-bit value support - that must say something.

For loading a constant which doesn't fit in the instruction I think it's normal to just load a word from memory, just past the end of the current routine, so there's a bit of a penalty but it still only takes one instruction. The set of valid immediates is quite a curious set - see here for an explanation and a calculator.

If you have a fast browser and plenty of RAM you can enjoy and explore the transistor-level model of ARM1 here:
http://visual6502.org/sim/varm/armgl.html

User avatar
jms2
Posts: 2036
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: A new article about the first ARM processors

Post by jms2 » Sun Oct 07, 2018 9:02 pm

I have just read it and I think you have done a great job. I like the way you have combined history with a technical analysis of aspects of the instruction set.

One constructive comment I would make is that it reads like it has been written by a Russian who is extremely good at English! :D To explain what I mean: there are no mistakes even though the subject is challenging and the sentences are complex. However the writing style is a bit unusual in places.

It's fine to keep it as it is (because it's your style 8) ), but I thought that maybe you were asking for advice from an audience of native speakers, and if so it would be unhelpful to not mention it.

Phlamethrower
Posts: 84
Joined: Fri Nov 24, 2017 1:35 pm
Contact:

Re: A new article about the first ARM processors

Post by Phlamethrower » Mon Oct 08, 2018 12:32 pm

A few factual mistakes:

"RSUB R1, R0, R0 shl 6" - the correct mnemonic for reverse subtract is RSB. I don't think I've ever seen an assembler which accepts "RSUB".

"You can load only 12 bits at a time, although the constant can be inverted and shifted." - you can only load 8 bits at a time, since 4 bits of the 12 bit field are used to store the shift/rotate amount. Like BigEd says, the main way of loading awkward values was to use a PC-relative LDR to load them from nearby memory. But with more recent versions of the architecture (ARMv7) there's a more efficient way using some newer instructions (ARM blog article)

"For a long time, a significant drawback of ARM was the lack of support for memory management unit (MMU)" - It might be more accurate to say that there was lack of a built-in MMU. E.g. the early Archimedes machines all had MMUs, but they were in the memory controller chip rather than in the CPU

litwr
Posts: 199
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: A new article about the first ARM processors

Post by litwr » Tue Oct 09, 2018 1:39 pm

Thank you very much for the kind words. Thanks to everybody who could find a spare time to read the article. Thank you very much for a lot of interesting information. And, sorry for my English.
I have actually translated my article from Russian, I used Google, Reverso and Yandex translates, Grammarly checks and my rather mediocre knowledge of English. I am glad that my grammar is rather correct but I am almost sure that something is wrong with some commas. I am also not 100% sure about my use of the articles. Please inform me if there are some places which looks rather too unusual or are just wrong in modern English. The main purpose of my translation is to create a kind of circumstances for my studying English and computer hardware. And, indeed, I have actually tried to write something interesting for men who like to read about computers. And I will be happy if someone finds it interesting.

@biged Thank you very much for the link to the article about using immediates with ARM. The idea about the loading from memory can be not easy too because an offset for PC is only 12-bit... IMHO it is better to have a prefix to extend an immediate value to 32 bit. It is a way of Xilinx MicroBlaze architecture. It is very interesting information that Apple is behind ARM Holding separation - is it possible to find more details about this?

@Phlamethrower Thank you very much for corrections. It looks like ARMv7 accepts MIPS and PowerPC ways.

I have added some fixes to my article and some more data about x86 and ARM instruction sets comparison. I place the new insertions here.
Perhaps the delay in the emergence of a real Unix for ARM was caused by Acorn's reluctance to transfer ARM technology to other firms.

The ARM instruction system contains significantly fewer basic instructions than the x86 processor instruction system. But the ARM instructions themselves are very flexible and powerful. Several very convenient and powerful ARM instructions have no analogues for 80386, for example, RSB (reverse subtraction), BIC (AND with inversion, such a command exists for PDP-11), 4-address MLA (multiplication with accumulation), LDM and STM (loading or unloading multiple registers from memory, they are similar to MOVEM command for 68k processors). Almost all ARM instructions are 3-address, and almost all instructions 80386 have no more than 2 operands. The ARM command system is more orthogonal - all registers are interchangeable, some exceptions are registers R14 and R15. Most ARM commands may require 3-4 80386 commands to emulate, and most 80386 commands can be emulated by 2-3 ARM commands. Interestingly, the IBM PC XT emulator on the hardware of the Acorn Archimedes with an 8 MHz processor runs even faster than a real PC XT computer. On Commodore Amiga with 68000 @7 MHz, the emulator can only work at a speed no greater than 10-15% of the real PC XT.

You can load only 8 bits at a time, although the constant can be inverted and shifted. Therefore, loading a full 32-bit constant can take up to 4 instructions. This problem is related to another imperfection. The MOV (register loading) and MVN (register loading with inverting) commands, unlike most commands, have only two operands, but 4 bits for encoding the first, ignored operand are not used - using them would allow 12-bit constants instead of 8-bit.

There is still some oddity in the standard assembler language for ARM: it is standard to write operations for the barrel shifter separated by commas. Thus, instead of the simple form <code>R1 shl 7</code> - shift the contents of the register R1 by 7 bits to the left - you need to write <code>R1, shl 7</code>.
BTW I have been writing this text using my Android tablet powered by an ARM multicore processor. I could find some spare time performing my commute to work and back by local train. :)

Thanks to all again.
Last edited by litwr on Tue Oct 09, 2018 4:13 pm, edited 2 times in total.

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Tue Oct 09, 2018 9:44 pm

litwr wrote:
Tue Oct 09, 2018 1:39 pm

@biged Thank you very much for the link to the article about using immediates with ARM. The idea about the loading from memory can be not easy too because an offset for PC is only 12-bit...
Good point, and indeed there's an assembler error which tells you that it can't be done. But if a function isn't as big as 2k, then it can reach a constant just beyond the final return instruction.
It is very interesting information that Apple is behind ARM Holding separation - is it possible to find more details about this?
Just as a quick citation, not really any extra details:
Apple wanted to use the ARM in its Newton handheld so ARM (Advanced Risc Macines) was spun off as a separate company with Apple as a shareholder.
from https://www.theguardian.com/technology/ ... upplement5.

I had a feeling there were four stakeholders in the original ARM spinout, but I can only find three: Acorn, Apple, and VLSI Technology (aka VTI)
To polish the design Apple and Acorn entered into a partnership and launched a separate company called ARM in 1990, with each owning a 43 per cent share.
from here.

User avatar
jms2
Posts: 2036
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: A new article about the first ARM processors

Post by jms2 » Wed Oct 10, 2018 7:46 am

litwr wrote:
Tue Oct 09, 2018 1:39 pm
Thank you very much for the kind words. Thanks to everybody who could find a spare time to read the article. Thank you very much for a lot of interesting information. And, sorry for my English.
I have actually translated my article from Russian, I used Google, Reverso and Yandex translates, Grammarly checks and my rather mediocre knowledge of English.
The amount of effort that you have put in to the translation is impressive and has worked really well. I like the idea of using several translation tools and picking the best results.
I am also not 100% sure about my use of the articles. Please inform me if there are some places which looks rather too unusual or are just wrong in modern English.
OK, I will have a go! When I was at school they did not teach us grammar at all, so I don't really know any rules, but I do know what "looks right" and what does not. Your use of articles seems generally OK to me actually.

Here are two examples of sentences that I struggled to read at first:
The 6502 ideology, namely, to make it easier, cheaper and better, found its continuation in the almost fantastic development of Acorn, the ARM-1 processor, released in 1985, at the same time when Intel's technological miracle, 80386 processor, appeared.
This sentence is a bit too long. Also, it reads as if it follows on from a previous paragraph by starting with "The 6502 ideology..." - but it's the first paragraph in the article (I checked the previous article, but that isn't about the 6502 either). So this is my suggested version; I have tried to keep the words as close to yours as possible:
The ARM-1 processor was an astonishing development. It continued the 6502 ideology (namely, to make a processor that is easier, cheaper and better), and was released by Acorn in 1985. This was at the same time when Intel's technological miracle, the 80386 processor, appeared.
The reasons why I prefer this are:

- Three shorter sentences. The first one makes a bold statement which gets the reader's attention. The second one talks about the concept, release date and designer. The third makes the comparison with the 386. This wasn't my first choice of rearrangement - I found myself changing things around quite a lot until I came to this.
- "found its continuation" is correct English but I don't think we would really say that. It is the passive tense so it gives the impression of something which happens very gently. Actually it does make sense to say that an ideology (which is quite a vague thing) "found it's continuation" but to me this feels like you mean 50 years have passed; whereas the ARM was directly and positively inspired by the 6502.
- "almost fantastic" - I know what you mean, but "fantastic" usually means "very good" and so "almost fantastic" means "almost very good". What you really mean is "astonishing" or "amazing".
At that time, 80286 was already available, it showed very good performance, but Intel, perhaps sensing the rather not small potential of the small Acorn company, refused to provide its processor for testing.
My version:
At that time, the 80286 was already available. It showed very good performance, but Intel, perhaps sensing the potential of Acorn, refused to provide its processor for testing.
- OK, there was a missing article before "80286". But actually, you can get away with this in English sometimes and so I didn't notice this the first time I read it.
- Again, it makes sense to split into two sentences. The bit about the 80286 being available is a complete thought on its own and is not really connected to its performance.
- "sensing the rather not small potential" is a lot of adjectives all together and it's difficult to see what you mean at first reading. What I think you mean is that Intel were suspicious that Acorn might become a powerful rival one day. I think the best way to say this is simply "sensing the potential". Intel were not 100% sure of Acorn's potential, so you don't need to include lots of words to describe it.
- "the small Acorn company" - again I see what you mean, and it isn't wrong, but as you've already said that Acorn had potential, this implies that they must be small. So I don't think you need to say it.

I am sure that other people will have different ideas, and that's fine. But I hope my comments are interesting and useful to you. :D
Last edited by jms2 on Wed Oct 10, 2018 7:49 am, edited 2 times in total.

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Wed Oct 10, 2018 8:27 am

BigEd wrote:
Tue Oct 09, 2018 9:44 pm
I had a feeling there were four stakeholders in the original ARM spinout, but I can only find three: Acorn, Apple, and VLSI Technology (aka VTI)
It seems my feeling was wrong and there were only three. This article is good:
The company was founded in November 1990 as Advanced RISC Machines Ltd and structured as a joint venture between Acorn Computers, Apple Computer (now Apple Inc.) and VLSI Technology. The reason for this was because Apple wanted to use Arm technology but didn’t want to base a product on Acorn IP – who, at the time were considered a competitor. Apple invested the cash, VLSI Technology provided the tools, and Acorn provided the 12 engineers and with that Arm was born, and its luxury office in Cambridge – A barn!
(Emphasis mine)

Herman Hauser is interesting (PDF), although it's his own telling, not an independent history:
But with [Acorn chairman and Olivetti VP] Elserino we decided that we wanted to spin out the ARM, because it made no sense to have a company produce its own processor, because this is becoming a big investment in creating the new versions of the ARM. And in order to make it successful, it really should be adopted by other people other than Acorn.

So we went around together a number of big European companies to convince them to adopt the ARM and buy the ARM processor. So we almost had to deal with Siemens, who wanted to use it for educational computers in Europe. We almost had to deal with a French company as well, with Bull Microsystems.

But somehow it never clicked and then I saw Larry Tesler of Apple and told him about the ARM, and he was working on the Newton at the time. And he was working with the Hobbit. And God knows what made him prefer the ARM over the Hobbit, because if you looked at the performance of the Hobbit and the ARM, they were very comparable in many ways.

And what he argued-- and of course he turned out to be completely right-- was that he did not trust a $2 billion electronics subsidiary of AT&T, AT&T microelectronics. He did not trust them to support that microprocessor. Whereas he argued if I help ARM to be spun out, they had no where else to go. They've got to do that processor. They will not discontinue it.

So he invested $1.5 million for 43% of ARM. Elserino and I were working on spinning out ARM from Acorn for three years, and nobody would take it. We had no takers. And Elserino was very well networked everywhere in the world, also in the US. So he talked to lots of people in the US. Talked to Siemens, talked to Bull, talked to everybody. And they said no, I'm not interested. ARM? A British company microprocessor? Nah.

So another little known fact-- and there's a quote from John Sculley on that-- is that Apple would have gone bust if they had not been able to sell their $1.5 million investment for $800 million when they did, because Apple was in trouble at the time. So Acorn, one of the competitors of Apple, is actually responsible for the survival of Apple.
Robin Saxby should be credited with ARM's licensing model - they had to get out from under Apple and Acorn and into the open market, and they needed revenue. So they had both a signing up license fee - which I think I heard they doubled for each successive customer - and a per-unit royalty. This way they didn't have to wait for mass production, or even for successful design-ins.
Some 64% of ARM's 1998 sales of $70 million came from licensing fees and another 8% from royalties. The remaining 28%, or $19.6 million, stemmed from a mix of development systems (11%), and maintenance, training and pure consultancy (17%). That way, partners who are not chipmakers can buy some of ARM's collective knowledge.
Here's another telling:
During the late 1980s, Apple was looking for a suitable mobile processor for its upcoming PDA that came to be known to the world as Newton. Here, Apple’s fab partner VLSI Technology led the computer maker to a small firm in Cambridge, England that owned a low-power and high-efficiency processor. Acorn Computers, also a PC maker, had developed its own processor because it didn’t want to buy expensive PC processors from Intel or Motorola.

However, Acorn didn’t have deep pockets to develop a complex and powerful processor, so it ended up with a RISC-based device carrying a simple structure. They called it Acorn RISC Machine or ARM. In VLSI, which manufactured these PC processors for Acorn, it was John Stockton who had told the Newton team about the ARM processor. Eventually, Apple’s chief scientist Larry Tessler made the case for using ARM processors in the Newton PDA.

Now Apple wanted to make some tweaks in the original ARM processor to suit the needs of Newton and Acorn didn’t have the budget to carry out these changes on its own. In fall 1990, in a span of six weeks, a joint venture was negotiated between Apple, VLSI Technology and Acorn. Acorn would provide the manpower, Apple Computers would bring the financial support and VLSI Technology would share the design tools technology.
Last edited by BigEd on Wed Oct 10, 2018 8:29 am, edited 1 time in total.

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Thu Oct 11, 2018 10:16 am

Nearby, this presentation by ARM in 1992 covers some bit of history, or backstory:
davidb wrote:
Tue Sep 04, 2018 1:50 pm
The Centre for Computing History has put up a few interesting videos related to ARM recently. Here's one that I found quite intriguing: Historic ARM Presentation to Apple Computer - 1992.

litwr
Posts: 199
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: A new article about the first ARM processors

Post by litwr » Sat Oct 13, 2018 10:13 am

Dear jms2
thanks a lot for your help with style. I have gratefully included all your changes in the article. I will be happy to get more lessons from you. ;) It is fascinating that the quality of online translators has improved significantly for the recent months. I am feeling the presence of Deep Learning Systems there. Maybe with the new incoming Colossus chip the computer translation will become comparable with made by humans. 6502 part of the article is under processing, I just need more time... There is also part about 8080 - it is still produced!

@BigEd thank you very much for the links and interesting information. I have also found several interesting links https://appleinsider.com/articles/13/08 ... atent-race
Apple wanted ARM to add an integrated MMU (memory management unit), but the struggling Acorn didn't have the funds to develop its desktop chip into the type of low power component Apple needed.
https://web.archive.org/web/20050208095 ... t1stor.htm
Despite these software problems, Apple computer had been persuaded to try an ARM project to replace the obsolete Apple II, code named the Mobius. The result was very impressive. Not only was the ARM based computer prototype able to emulate the 6502 and 65C816 processors, it even ran Macintosh software faster than the 68000 could. Of course this had to be nipped in the bud and the project was terminated. Apple would have to find a home for the ARM that was not threatening to the existing computer groups. After all, the ARM processor was owned by a direct competitor. (Acorn has (had) a large percentage of the UK education market).
I have made some changes to my article. They are shown in the following quote.
The development itself took place in the building of a former barn.

In addition, in the interrupt modes, the higher-numbered registers are replaced with the system ones, which makes interrupt handlers more compact and fast.

It is also fascinating that the first computers https://ru.wikipedia.org/wiki/NeXT_Computer with 25 MHz 68030 showed the same performance of integer calculations as the 8 MHz ARM. Apple was going to make Apple ]['s successor in the Möbius project, but when it turned out that the prototype of this computer in the emulation mode overtakes not only Apple ][ but also Macintosh based on 68k processors, the project was closed!

You can, of course, load a constant from memory with one instruction, but here the problem arises of specifying an address of this value, since the offset can only be 12-bit.

For a long time, a significant drawback of ARM was the lack of built-in support for memory management (MMU) - Apple, for example, demanded this support in the early 90s.

However, the separation of Acorn and ARM Holding was also initiated by Apple’s desire to have ARM processors in its Newton computers and not be dependent on another computer manufacturer.

A lot of thanks to jms2 and BigEd who helped to improve the style and content.
And again, thanks very much for reading and helping!
Last edited by litwr on Sat Oct 13, 2018 4:30 pm, edited 3 times in total.

litwr
Posts: 199
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: A new article about the first ARM processors

Post by litwr » Sat Oct 20, 2018 6:38 pm

IMHO ARM could multiply an offset in the PC-relative addressing for a word by 4 and this would give 32 KB of addressable area instead of 8 KB.

BTW I dare to share a link to my translation of an article about 6502 - https://litwr.livejournal.com/2773.html
It will be interesting to get some comments and additions. I am not a native English speaker so please excuse me my a bit not proper language. Indeed, I will be glad to get any corrections of grammar or stylistic. Thank you.

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Sat Oct 20, 2018 6:58 pm

I'll certainly have a read of your 6502 article...

On the ARM, the classic programming book at the time was Peter Cockerell's, and he has it online here:
ARM Assembly Language Programming

Perhaps see also this page about literal pools, which is about the 12 bit relative addressing problem:
http://benno.id.au/blog/2009/01/02/literal-pools

User avatar
BigEd
Posts: 2097
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: A new article about the first ARM processors

Post by BigEd » Sat Oct 20, 2018 7:52 pm

(Oh, BTW, while there's still time, it might be a good idea to start a new thread about your 6502 article, otherwise we're likely to get some interleaved discussions.)

Post Reply