Date: 28 Oct 1995 From: William Organization: cisco Systems, Inc. Newsgroups: comp.arch.embedded Subject: Re: PIC mul/div? [all of what follows are personal opinions] About RISC: During the devlopement of computers, and especially with the advent of microcomputers, hardware developers tended to look at high level languages like COBOL and SMALLTALK and say "Hey, we can implement stuff in hardware and microcode that will do THAT really fast!" And so the instruction sets of the processors being designed became very complex and obscure, and the logic of the hardware that implemented them became complex as well. But over at Berkeley, they didn't use COBOL, they used "C". And they looked at the complex (CISC) processors and said "This is silly. C doesn't use your complicated intsructions, and furthermore the cobol compiler writers don't understand them, and don't use them anyway, because it makes the cobol compiler much harder to port to thenext generation machine. And not only that, but when you added the hardware to do the complicated instructions that no one uses, you slowed down the simple instructions." And they developed the idea of a reduced instruction set computer. One that implemented simple instructions simply, and thus could do them very quickly. Lazy hardware designers really liked this idea, and so did the people from marketing. Now in fact, no one was taking a very systems-oriented approach, nor were they noticing that processor speeds were increasing faster than memory speeds, and soon the bottleneck would be memory access rather than instruction execution. This meant that all the HW design time that was saved not doing complicated instructions got used up designed complicated cache and memory systems instead. And processors became pipelined and weird, and compiler writers weren't a lot better at instruction queuing and delayed branch handling and so on than they were at dealing with the weird CISC instructions. Meanwhile, while it was difficult, it wasn't impossible to build fast CISC processors if you had enough money and time, and the overall performance of CISC systems and RISC systems stayed pretty much equivilent. (I'm sure the idea of a 120MHz CISC microprocessor like Intel's Pentium would have boggeled the minds of the berkeley risc inventors!) But marketing departments had a field day. RISC was NEW! RISC was FAST!! RISC was RISKY and EXCITING!!! You could use lots of exclamation points and come up with neat puns if only you had a RISC microprocessor!!!! So it became popular to take chips that had been designed in the absence of any knowledge of the RISC vs CISC debate, and label them RISC to try to convince systems designers to buy them because they were fast and modern. "The 680x0 is RISC-like because it has general purpose registers!". "The PIC is RISC because it has a fixed-length instruction word!" "The PDP-10 was a RISC architecture because it had a regular instruction format." And so on. And on and on... But those were marketing people talking, and you should have known better than to listen to them. Whether a given microcontroller can do what you want has very little to do with whether it is RISC or CISC. Most aren't really either - they're just processors with their own little instruction sets, with their own little quirks and gotchas. You have to evaluate each one on its own merits and weaknesses with respect to YOUR application, and THEN you can have fun arguing with the other geeks on the net whether it's a RISC or a CISC Processor... As for the PIC... I'm less sure here, but while the PIC has a lot of recent family additions and publicity and support an all, isn't it actually more or less identical in architecture to the old Plessy/General Instruments ROM based microcontrollers used in millions of computer games and microwave ovens and so on? An archiecture that was developed long before RISC was a houshold word? BillW