|
|
RISC vs. CISC in the post-RISC era |
Posted by Hemos on Thursday October 21, @08:04AM EST from the chip-differential dept. S. Casey writes "Ars Technica has a very cool article up that takes on the typical RISC versus CISC debate. The author argues that today's microprocessors aren't RISC or CISC, really, and covers the historical/technical reasons why these two distinctions aren't particularly useful anymore. It's pretty convincing (to me). " Essentially, the author argues that it is difficult, if not impossible, to have the normal debate because both chipsets have evolved features that used to be found in the other chipset. < It's the Developers, Stupid!: The Real NT-Linux Battle | Video Game Wars Aren't Always Games > | | Slashdot Login | | Don't have an account yet? Go Create One. A user account will allow you to customize all these nutty little boxes, tailor the stories you see, as well as remember your comment viewing preferences. | | | This discussion has been archived. No new comments can be posted. | Flashbacks.. (Score:0, Offtopic) by SL33Z3 (joedipshit@hotmail.com) on Thursday October 21, @08:11AM EST (#1) (User Info) | Flashbacks of the "Hackers" movie... "RISC is good.. RISC will change everything"... *grin*
SL33ZE, MCSD em: joedipshit@hotmail.com - Artificial Intelligence is No Match For Natural Stupidity - | | | Re:Flashbacks.. (Score:0) by Anonymous Coward on Thursday October 21, @05:46PM EST (#93) | How is that off topic?
| Re:Flashbacks.. (Score:1) by SL33Z3 (joedipshit@hotmail.com) on Thursday October 21, @07:10PM EST (#95) (User Info) | It's not. This is the second one that went this way along with a few posts. I guess it's more of a popularity contest than anything. Someone didn't like my .sig or something.
SL33ZE, MCSD em: joedipshit@hotmail.com - Artificial Intelligence is No Match For Natural Stupidity - | Neither RISC nor CISC.. (Score:0) by Anonymous Coward on Thursday October 21, @08:18AM EST (#2) | uhhh...how about HYBRID blah blah,"HISC" ?
| | | Re:Neither RISC nor CISC.. (Score:2) by jd on Thursday October 21, @08:29AM EST (#3) (User Info) | | Sounds like a snake with a speech impediment. Seriously, it's not really possible to have a genuine "HISC" environment. Either the underlying layer is basic or it isn't. That is what's really important, not what is visible from "outside". The RISC architecture follows the idea that you have as -few- instructions as possible, thus making it faster to search for what to do. If you were to, say, have a whole load of RISC systems wired together, in such a way that they appear to be a CISC, in terms of the instructions available, it's -still- RISC. You just have (effectively) a Beowulf of RISCs. On the other hand, if you have a translation layer, converting CISC instructions into RISC ones, you have a CISC architecture, because all you've done is move the search (which is the crucial difference in philosophy) from one layer to another. It's still present. (The previous case didn't have a search mechanism, because it doesn't need one. You can filter to multiple destinations without needing any kind of search.) It's that search that makes the crucial difference between whether something is RISC or CISC. If the search is complex or lengthy, it's CISC. If it's simple -and- quick, it's RISC. There are no other cases.
| Re:Neither RISC nor CISC.. (Score:2, Informative) by werd life on Thursday October 21, @08:55AM EST (#14) (User Info) | Of course it's possible to have a hybrid! Look at the powerPC chip. In designing that chip, they tried to follow the risc mentality, having simple instructions and a low orthogonality. They also however wanted to have powerful math instructions, and you end up having instructions like a+b*c as a single instruction... certainly risc. CISC/RISC is more than instructions that 'do alot', the complexity of instructions also takes these into account: CISC characteriscs: Register to register, register to memory, and memory to register commands. Multiple addressing modes for memory, including specialized modes for indexing through arrays Variable length instructions where the length often varies according to the addressing mode Instructions which require multiple clock cycles to execute. It is not hard to imagine a basically RISC machine that allows different memory addressing modes? gee, what do we have now, a hybrid!
| Re:Neither RISC nor CISC.. (Score:2) by jd on Thursday October 21, @09:40AM EST (#33) (User Info) | | Register to memory, memory to register and register to register are all perfectly valid RISC operations. Indeed, you HAVE to have R->M and M->R if you're going to program in assembly at all! (Unless you have Processor-In-Memory architecture, you -HAVE- to load your data into the processor somehow!) Multiple addressing modes - provided your instruction search time isn't impacted, these don't change whether a processor is RISC or CISC. The whole point of RISC is reducing the overheads of processing. So, if you don't add any overheads, you're not changing the type of processor. Variable length instructions - Depends on how it's implemented. Remember, the key is the overhead. If the maximum size of instruction can be fetched in a single transaction, it's quite irrelevent as to whether you've fetched 1, 2, 4, 8 or a million bytes. It becomes CISC if you have to do multiple fetches and parse the data. Instructions which require multiple clock cycles - you'll find even the early ARM and Transputer chips (the very ESSENCE of RISC design!) had opcodes which took more than one clock cycle. Indeed, it's impossible to do anything much inside a single clock cycle. (Even basic operations, such as adding two numbers, or fetching a word from memory, only just fit into that, and sometimes not even then. The 8086 took 2 clock cycles to do either of these.) The problem, I believe, is the changing definition of RISC and CISC, =NOT= what chip manufacturers are doing. I use the classic definitions that I learned when RISC architectures first appeared in Britain, where (IIRC) the idea was pioneered by companies such as ARM and Inmos.
| Re:Neither RISC nor CISC.. (Score:0) by Anonymous Coward on Friday October 22, @10:44AM EST (#106) | Register to memory, memory to register and register to register are all perfectly valid RISC operations. Indeed, you HAVE to have R->M and M->R if you're going to program in assembly at all! Well, what the original poster meant was instructions like memory=register+memory which is rather CISC. RISC machines are usually load/store machines where you can only to arithmetic on operands in registers. Obviously, you can load and store registers from/into memory on a RISC chip. Instructions which require multiple clock cycles - you'll find even the early ARM and Transputer chips (the very ESSENCE of RISC design!) had opcodes which took more than one clock cycle. Indeed, it's impossible to do anything much inside a single clock cycle. (Even basic operations, such as adding two numbers, or fetching a word from memory, only just fit into that, and sometimes not even then....) True, a large part of the reason for RISC is to facilitate pipelining. "Traditional" RISC instructions take 3-5 clock cycles, usually all 5 even if they don't need it.
| Code bloat is still a problem (Score:1) by Epeeist (Colin@murorum.demon.co.uk) on Thursday October 21, @08:30AM EST (#4) (User Info) http://www.murorum.demon.co.uk
| One missing from the article (which I found interesting and informative) is that while memory has become cheap programs have increased in functionality and complexity. So, more space available but lots more to get in there. Increased processing power and memory space is no excuse for sloppy programming and lack of optimisation.
| | | He _did_ mention that actually... (Score:1) by The Creator (root@internic.net) on Friday October 22, @05:59AM EST (#102) (User Info) http://fmf.webprovider.com
| Look :"Today's memory is fast and cheap; anyone who's installed a Microsoft program in recent times knows that many companies no longer consider code bloat an issue." Duh!!
LINUX stands for: Linux Inux Nux Ux X UNIX stands for: UNIversal eXperts operating system | How about... (Score:2, Funny) by .pentai. (vc@777h.org) on Thursday October 21, @08:33AM EST (#5) (User Info) http://www.777h.org/
| ...ALCBSKRISC (pronounced: ALCBSKRISK) First of all you can see the benefits by the ease of pronunciation of the name...(I mean, compared to CISC...which is next to IMPOSSIBLE to say 3 times fast) Second, it makes sense: A Little Complex But Still Kinda Reduced Instruction Set Computing. I'm telling you, it'll be the future!
| G4 (Score:1) by MacJedi (macjedi@metalab.unc.edu) on Thursday October 21, @08:39AM EST (#6) (User Info) http://metalab.unc.edu/macjedi
| Its interesting what the article says about the G4. I hadn't thought of it before, but that velocity engine (vector unit) must have a whole lot of instructions... Has anyone gotten their G4 yet?
"Linux - It's Bill's own Y2K problem" | | | Re:G4 (Score:0) by Anonymous Coward on Thursday October 21, @09:12AM EST (#18) | The PPC 603 processor had almost exactly twice the number of instructions as a Motorola 68030. The whole thing about the PPC line has been to optimize the flow of code through the cpu, and this requires almost total elemination of all microcode and some magic tricks with design which are secret. Eleminating the microcode eleminated the multiple alternatives to addressing the instruction list, so if you regard each way of connecting an address each instruction (something like 5 ways in the 68030 if memory serves me), then yes the instruction set has been reduced. I couldn't get to the article as the site had gone up in smoke, and am not personally involved in cpu issues, but have had it explained to me by people on the inside who know what is going on: The PPC family of"risc" has never been and never will be "reduced instruction set"--it is optomized instruction set (but "oinc" is not a very catchy acronym, as the joke goes). It is optimized in such a way that it can kick ass with minimal L2 cache and a comparatively cheap memory + main bus configuration. Other "risc" efforts (Motorola 88000, Alpha, Mips, ...) were not optimized in the same way, although they have various strengths individually. Thus, an Alpha may need twice the clock rate and a lot of very expensive L2 to run in the same league with the PPC. Intel still has microcode in its processors, and will never be able to match the "risc" set clock for clock.
| Re:G4 (Score:1) by kcarnold (kc ar no ld @a ol .c om) on Friday October 22, @01:47PM EST (#110) (User Info) | I still don't know what to think about the G4. Is it faster than the PIII because it has more (total) instructions? Does it just appear faster, or is it really? The test numbers given at the various review sites don't seem to give a good overall picture. The article confused me on this issue.
Still, the Velocity Engine, in theory as well as, it seems, in practice, is a very good idea (I think... Is this true?), so why didn't Intel or AMD or Cyrix have it a long time ago?
I have a whole bunch of opinions on this subject, but any opinions stated here are merely coincidental. Don't feel like you actually have to answer my questions either; I don't want to start another flame war.
Kenneth
PS - I'm debating whether or not to post this anonymously because of the flame bait issue. I guess I'll post as myself, trusting other users to be smart enough to keep their mouths shut.
Do whatever you want, but be prepared to accept the consequences. | I don't care, my VAX still rules... (Score:1) by semis (semis@semisphere.org) on Thursday October 21, @08:42AM EST (#7) (User Info) http://semisphere.org
| ... because it's got polynomial equation solving built into its instruction set!!
| | | Re:I don't care, my VAX still rules... (Score:2) by Eccles (abell@mindspringdotcom) on Thursday October 21, @08:48AM EST (#8) (User Info) | ... because it's got polynomial equation solving built into its instruction set!! In grad school, I worked on the Pixel-Planes graphics supercomputer at UNC. Among its unique features were large arrays (256 to a chip) of 1-bit processors, with special hardware for solving second-degree polynomial equations. The polygon edges, texture maps, etc. were all turned into plane equations, and the resulting values solved per-pixel with one such processor per pixel. Pretty darned nifty eight years ago...
| Re:I don't care, my VAX still rules... (Score:0) by Anonymous Coward on Friday October 22, @01:53PM EST (#111) | Okay, so how is that going to affect the average user? Besides, whatever data format it uses is guaranteed not to be appropriate for the specific application, and there are bound to be more efficient ways of doing it in software for each special condition. And if you're into math enough to make polynomial solving useful, and you're going to put it into something the masses can use (game), find a general solution on the old fashioned pencil and paper. There are a lot of benefits for doing it that way, the one that immediately comes to my mind is that you get a better feel for how the equation works and what assumptions you have to make about it, or along the way you find a great way to optimize it, which is always good when you have to do the equation thousands of times. That sentence could have been shorter.
| Welcome to reality (Score:2) by RNG on Thursday October 21, @08:50AM EST (#9) (User Info) http://www.peoplesoft.com/peoplepages/g/robert_gasch/
| So we've figured out that neither RISC or CISC were an optimal solution and that we need something new/better. Excuse me for not being impressed by this conclusion: I've been programming for quite a few years now and if there's one thing I've learned, it's that there are no optimal solutions. Every design, every optimization is biased towards some specific situation/bias, evey optimization has a tradeoff which may have far reaching implications. What may work well in one area, might be horrible in another. It' just that in the CPU world architectures have to last for a while, so the general turnaround of fundamental designs is a bit slow, but this is hardly news and should not be surprising to you if you're more than just a causual programmer.
Boycott the evil empire ... | | | Re:Welcome to reality (Score:1, Funny) by GaspodeTheWonderDog (gaspode_@hotmail.com) on Thursday October 21, @09:29AM EST (#27) (User Info) | Obviously you haven't gotten your Transmeta system yet. You just sound bitter.
| Re:Welcome to reality (Score:1, Offtopic) by RNG on Thursday October 21, @10:19AM EST (#42) (User Info) http://www.peoplesoft.com/peoplepages/g/robert_gasch/
| Your reply seems to indicate the you have gotten your Transmeta chip yet. Now I'm not bitter anymore, now I feel discriminated :-) Boycott the evil empire ... | Design Theory (Score:3, Insightful) by marphod (galens.nospam@capaccess.org) on Thursday October 21, @08:53AM EST (#10) (User Info) http://www.cs.uiowa.edu/~silversm/personal/
| THere is a lot a-like in today's RISC and CISC chip designs, true, but there is still a lot that is different. The major difference between your two designs include how they interact with memory; RISC's still take three instructions to load, alter, and store memory alterations, CISC load and store does it in one instruction. There are differences in instruction size; where RISC design knows that each instruction is 16/32/64 bits long, CISC allow variable length instructions and fancy footwork/chp design to allow read ahead buffers to work well. The most significant example of this is in the x86 chip series, which still has 8 bit instructions on the legacy registers, but with prefixes and extensions can have 100+ bit instructions, as well. THe system needs, effectively, a parser before feeding the instructions to the actual CPU. And while my background on CISC design is lacking, I can only imagine the design acrobatics to do superscalar/pipelined design for instructions that can do so much. While not strictly a RISC/CISC issue, there is also the use of registers. In gross generalities, RISC design is much more apt to use general purpose registers than CISC. There are definitive advantages to each design. Yes, this is all 'under the hood' items, but they have a large effect on design; compilers that know of, for instance, the legacy registers from the 8088/8086 and use them primarily, have nice small instructions, and can get the most out of the x86 instruction preloading. THis has been less and less significant with newer x86's (P IIs, P IIIs) but it is still present.
| | | Re:Design Theory - strange (Score:1) by Jeff DeMaagd (idyson82@yahoo.freaky.com) on Thursday October 21, @10:37AM EST (#50) (User Info) http://www.iserv.net/~strdream/jeff
| RISC's still take three instructions to load, alter, and store memory alterations, CISC load and store does it in one instruction You are forgetting that memory-to-memory instructions are a waste of time and bandwidth, and are totally out of favor now that CPUs are so much faster than RAM. The question is not RISC / CISC, as even Intel says RISC (soon VLIW / EPIC), but using RISC to emulate CISC seems to be quite inefficient if a PPC at 400 MHz can keep up with a 700 MHz chip.
Jeff DeMaagd - newly declared enemy of reality. | Uh.. what about clock cycles? (Score:2) by Capt Dan (BobDean150@excite.com) on Thursday October 21, @11:07AM EST (#57) (User Info) | RISC's still take three instructions to load, alter, and store memory alterations, CISC load and store does it in one instruction True. But keep in mind that RISC is designed to ideally execute one instruction per clock cycle. CISC doesn't care. it may take one instruction for the memory op, but it still takes multiple clock cycles for the op to complete. Otherwise there wouldn't be so much effort put into math tricks to get around division. One instruction. approximately 6-12 (or more) clock cycles to complete depending on your system. (if its faster since I took my computer architecture class, someone gimme a link...) Division is notoriously slow.
"You want to kiss the sky? Better learn how to kneel." - U2 "It was like trying to herd cats..." - Robert A. Heinlein "Quack?" - a duck | Re:Design Theory (Score:1) by TM22721 on Thursday October 21, @01:19PM EST (#79) (User Info) | I have designed RISC machines. They are ultimately faster at the same clock speeds since the software designer has closer access to the hardware and can optimize his program. The typical CISC instruction is inefficient since most of its complexity can be unused when it executes. Since RISC cores are simpler they can host more parallelism, lookahead features and pipelining.
| Re:Design Theory (Score:1) by Ivootje (ivo at ivo dot nu) on Friday October 22, @03:23PM EST (#115) (User Info) http://ivo.nu/
| Or even better: TTA's, the ultimate RISC. A TTA is a transport triggered architecture and specifies datatransports with operations as a sideeffect, (instead of the other way around). So instead of add r3, r1, r2 you do mv r1 to add_unit mv r2 to add_unit mv add_unit_result to r3 True, 3 opcodes instead of one, but how simple! And if you put a lot a parallel transportbusses in the chip, let's talk about really more parallelism, lookahead features and pipelining! It's the logical step after CISC, RISC and VLIW! [shamelessplug]Our project[/shamelessplug]
| Re:Design Theory (Score:1) by buhr on Thursday October 21, @03:15PM EST (#87) (User Info) | | One of the points implicitly made in the article is that big on-chip caches running at (or close to) full processor speed act a lot like big banks of registers. A Pentium II might look, superficially, like its got only a handful of general-purpose registers, but your average C compiler treats it like its got a whole gaggle of them, indexed by %ebp. From this point of view, the difference in the way "CISC" and "RISC" chips interact with memory is that, with a CISC chip, memory is implicitly used as a backing store for register contents while, with a RISC chip, the backing store is managed explicitly. In practice, then, even this seemingly fundamental difference may not be that big a deal.
| Re:Design Theory (Score:0) by Anonymous Coward on Friday October 22, @10:57PM EST (#117) | All these debates of RISC vs CISC no longer carries any meaning. What matters is the install base. If you have a big install base to begin with, you will continue to sell CPUs. This allows you to do further r&d. It doesn't matter how nasty the implementations are, if there are people willing to pay for it, you will churn it out. This is why Intel is rich, and why Compaq owns DEC. The reason for all this is simply because people refuse to migrate/recompile/throw away legacy codes. This is also why I think IA64 will fail unless Intel provides an easy migration path. You can expect Merced to support IA32. AC
| efficient code (Score:1) by MrDelSarto (ianw@nospam.beer.com) on Thursday October 21, @08:53AM EST (#11) (User Info) http://come.to/pageofian
| wow, great article! as for efficient code, perhaps i'm wrong but it seems to have died a bit of a death. for example, i can't really write efficient code in java, since it will run on an intel chip, a alpha chip, a palm pilot (maybe soon), a G4 etc etc. i can try not to use excessive amounts of memory, write efficient ( ie not O(2^n) ) algorithms, but i can't push things around into registers or whatever. in a way, i guess it is a CISC language (i have a very abstract level of instructions that are implemented in whatever way underneath, maybe in one instruciton on a 'CISC' machine but 3-4 on a 'RISC', for example). but java, jini, upp or whatever (which all do pretty much the same thing) are the future for everything you see around you (i think anyway). does there particularly need to be a distinction now? everyone wants abstraction (windows/xwindows is really just abstraction) and this would seem to include chip architectures. i realise the guys designing the chips have to make a decision, but from everyone elses point of view, does it matter? [linux -- the choice of a gnu generation | palmOS rules, OK!] | CISC vs RISC (Score:1) by ghostdancer on Thursday October 21, @08:55AM EST (#12) (User Info) | Does the following correct? CISC = Complex Instruction Set Computer RISC = Reduce Instruction Set Computer So, if a computer use few and simple instructions, as a programmer, I'll will treat it as RISC. Thus complex task would require me to think more and code (write) more... If a computer give a lot of instructions, and instructions that would help me simplied my code, then I'll treat it as CISC. GhostDancer ps: Personally, I don't really care what/how/why, it happened in a processor.
| | | Re:CISC vs RISC (Score:0) by Anonymous Coward on Thursday October 21, @09:13AM EST (#19) | The compiler should take care of this for you. In the RISC design, the programmer should not need to worry about the reduced number of instructions, unless of course you are writing a compiler. If you are not writing a compiler then you shouldn't even have to think about whether the system is RISC or CISC.
| Re:CISC vs RISC (Score:1) by ghostdancer on Thursday October 21, @09:28AM EST (#26) (User Info) | Quite true... But the point is (was there a point?) I differentiate a processor type by its instructions set. So the idea looking a RISC and CISC in its core, to me, is rather untrue. Thus, I don't really agree (fully) what the author say. And, no, I don't write compiler (studied it during my uni. days only) and I don't think I can write it either. GhostDancer
| Re:CISC vs RISC (Score:0) by Anonymous Coward on Thursday October 21, @10:30AM EST (#46) | I could be wrong, but I don't beleive that the idea behind RISC philosophy was to provide a reduced instruction set to the programmer. I think it was more of a belief that by designing a CPU around a simpler instruction set, perforamce optimizations, etc, would be easier. So looking at the core is probably the most relevant thing in the CISC v. RISC debate.
| Re:CISC vs RISC (Score:1) by ghostdancer on Thursday October 21, @08:44PM EST (#97) (User Info) | Hmmm... maybe I should go back and read my old text again... thanks for the info.
| Re:CISC vs RISC (Score:2, Informative) by hattig (SpinningNucleon@yahoo.communista.us) on Thursday October 21, @11:18AM EST (#58) (User Info) | RISC does stand for Reduced Instruction Set Chip, but that doesn't mean less instructions, it means less Instruction Formats. Think of how many different instruction formats x86 has, with varying lengths of instructions, non-orthogonal instructions, etc, compared with the simplified instructions provided by RISC processors, which might have as few as 3 or 4 different instruction formats. RISC really should have been SISC, for Simplified Instruction Set Chip, but that clashes with CISC, ho hum.... Remember, you don't get a RISC chip (Reduced Instruction Set Chip Chip)! :-) The article was silly really, the author didn't look beyond the word 'Reduced' in RISC, thought it meant less instructions, then saw that most RISC chips have tonnes more instructions than most CISC chips, and arrived at the wrong conclusion. Hell, a simple ARM chip has a theoretical 4 billion instructions (all conditional etc) but there are much fewer general operations. RISC: - Register-Register operations (e.g., add)
- Load-Store operation (Mem to Reg LDR, STR)
- Simplified Instructions, less Instruction Formats
- Orthogonal Architecture (i.e., add can use any General Purpose Register)
- Pipelined Architecture from the beginning
- and many many more, read comp.arch FAQ for more details
CISC: - Variable Length Instructions (e.g., POLY in VAX)
- Non-orthogonal, i.e., must use register BX for multiply instruction result
- Many addressing modes... nice when there were no such things like caches and memory was as fast as the processor
- Good when not many transistors
- etc
CISC chips now typically have a RISC core, where instructions such as ADD (contents of memory A), (contents of memory B), (resulting memory location) are broken up into micro-ops, LD A, LD B, ADD A,B,C, ST C Anyway, just my (small) point of view... -- Beer is good for you, when drunk in vast quantities. | Re:CISC vs RISC (Score:0) by Anonymous Coward on Thursday October 21, @11:56AM EST (#66) | Not to nitpick, but I thought the term "orthogonal", when applied to API functions, instructions, etc, refered to the idea that evey operation have a compliment/opposite. Like open/close, load/store.
| Re:CISC vs RISC (Score:1) by hattig (SpinningNucleon@yahoo.communista.us) on Thursday October 21, @12:10PM EST (#67) (User Info) | No. With Instruction Set Architectures (ISA) I believe that orthogonal means that an instruction such as add can use any register (in a general purpose register file) as its arguments, whereas with a non-orthogonal architecture, you can't, so you end up with instructions where you have to use certain registers in order to execute a certain instruction, which is hell for compilers! I forgot to add that RISC was developed because of compilers, and that only the common compiler instructions were implemented, because compilers are too stupid to work out that you could use a certain instruction to implement a certain function. Compilers on CISC tended to only use certain instructions and not others, making those other instructions worthless! Of course, thesedays you would have hand-coded HALs which are written in assembler and can use the complex instructions (such as 3D-Now! and SSE) and these fuctions are called by programs... Ah! The end of the working day is nigh! Time to go and assemble my new semi-computer (gutting ye olde computer for some stuff) -- Beer is good for you, when drunk in vast quantities. | Re:CISC vs RISC (Score:0) by Anonymous Coward on Friday October 22, @03:01PM EST (#113) | Did you actually read the article dude? The comment about reducing the number of instructions was a small paragraph (and a footnote) in an otherwise huge article. Please, read the damn article before you flame. You've absolutely missed his point entirely.
| Re:CISC vs RISC (Score:0) by Anonymous Coward on Thursday October 21, @12:46PM EST (#74) | unless you do frequent coding in assembly language.. you're talking complete nonsense. especially since on a RISC chip you don't _need_ to write in assembly for totally optimised code, whereas on a CISC chip the compiler may not always be able to make full use of the instruction set..
| Complier Construction (Score:1, Redundant) by Dacta (n i c k at w h o dot net) on Thursday October 21, @08:55AM EST (#13) (User Info) | I remember learning a bit about this in class. The point was made that it used to be neccesary to hand optimise code on CISC chips, but on RISC chips it has been to complex for quite a long time, and most modern compilers are better at it than humans, and the optimising by the compiler was done very differently (now that is a technical term - I can't remember the details) on RISC chips compared to CISC. I'm always annoyed by some commercial Windows compiler makers who take a long time to add instructions for the new instruction sets in MMX etc chips. I would imagine that these hybrid chips would be even worse - having to add stuff to a RISC targeted compiler might take even longer. Of course, I may be way off track here - I slept though most of Uni. Corrections are of course welcome. *S*
| The author of this article is clueless. (Score:4, Funny) by anonymous loser on Thursday October 21, @09:00AM EST (#15) (User Info) | His main evidence is a quote wherein Ditzel is quoted as saying, "Superscalar and out-of-order execution are the biggest problem areas that have impeded performance [leaps]." Obviously the author has absolutely no knowledge of how processors work internally, or he wouldn't say that this is due to the complexity of the ISA (Instruction Set Architecture). The complexity with superscalars is not in the ISA, but in the scheduling. At the most basic level, though, RISC instructions are used because it is (effectively) impossible to schedule CISC instructions for out-of-order execution. The whole idea with RISC is to make instructions so basic that they can (almost) all be completed in a single processor cycle. In the article, he tries to refute this with a quote from Patterson, but the quote actually refutes the author's point, and the author is too blind to realize it. Twice in the quote Patterson refers to reducing the cycle time for each instruction, but the author says that's not Patterson's point. Today's processors take the idea a step further, by trying to execute MORE than one instruction per cycle by providing multiple processing units (the thing that does the actual addidtion, subtraction, or whatever) which can execute instructions in parallel. However, instructions still need to be scheduled so that they can execute in parallel while preserving dependencies. The hardware that accomplishes this scheduling is complex. IMHO VLIW is the way to go. With VLIW, you do the scheduling at compile time, and remove a lot of the complexity involved with hardware scheduling. Not only do you gain the possiblity of higher parallelism through an increased number of processing units (you can use the silicon previously reserved for the scheduling hardware), but you also can gain a little more since theoretically a complier can spend more time looking for dependencies between instructions, and come up with a more optimal schedule. anyway, that's just my 2 cents.
| | | Re:The author of this article is clueless. (Score:0) by Anonymous Coward on Thursday October 21, @09:27AM EST (#25) | Have you read Patterson? I seriously doubt it because Patterson is pretty clear on these matters, but you seem to be framing him in a totally obscure light. that's not my point in writing, however. I'd say you're missing the point of the article insofar as it goes beyond the ISA, on purpose, to show that the original impetus of design is no longer the guiding principle in modern microproc design. By ignoring the design leaps of the recent past, you're trying to force the debate back into the mode it was argued in before: one of "ISA rules all," one in which people debate theory versus overall implementation. You've reified the terms of the debate by insisting on talking about "RISC instructions" and "CISC instructions" being competing instruction ideologies with regards to superscalar implementation, but then you try to divorce the issue from everything but the ISA again. That is to say, you've missed the point entirely.
| Re:The author of this article is clueless. (Score:1) by anonymous loser on Thursday October 21, @09:38AM EST (#31) (User Info) | 1. Yes, I have read Patterson, and yes, he is clear about the goal of reducing execution time for instructions. 2. I am not arguing CISC vs. RISC. I am saying many of the "design leaps" you refer to are infeasible using traditional CISC methods. It was the push towards reducing execution time per instruction in the 80's that made modern processor designs possible.
| Re:The author of this article is clueless. (Score:1) by justin_saunders on Thursday October 21, @09:50AM EST (#37) (User Info) http://www.ninjatek.com
| | Before you rant, read the entire article. That way you'd understand that the article's purpose is not to debunk RISC, but to point out that the distiction today is almost meaningless in the framework of the old RISC v CISC debate. The author's "main evidence" as you call it, is merely laying out the main question of the article, ie is there a difference nowadays? As you read on, there are numerous examples cited of the blurring distinction, eg G4's with the Velocity Engine (162 _extra_ instructions), and the Pentium II, a classic CISC CPU, with its internal microcode (RISC) architecture. Cheers, Justin. Don't sweat the petty things and don't pet the sweaty things | Re:The author of this article is clueless. (Score:1) by Salamander (jjd@banet.net) on Thursday October 21, @10:26AM EST (#43) (User Info) | >The whole idea with RISC is to make instructions so basic that they can (almost) all be completed in a single processor cycle. I don't think that's the whole idea of RISC. The basic RISC philosophy, as elucidated most excellently in H&P, is to maximize instructions per second, and if that means a small sacrifice in work per instruction that's OK. Single-cycle execution is probably the most powerful means available to achieve this goal, but there are many others - superscalarity, deep pipelines, reordering, branch prediction, etc. - that apply regardless of how many cycles instructions take.
| VLIW is way to go (Score:1) by Mr Z (moc.tenemirp@c2u41mi) on Thursday October 21, @10:33AM EST (#49) (User Info) http://www.primenet.com/~im14u2c/
| I'd have to agree that some sort of explict-parallelism approach such as VLIW is the way to go. Compatibility with future parts at the object code level is difficult, but the gains at a particular process node are worth it. I'd rather spend my transistors on functional units than on hardware scheduling engines, since those are expensive. In contrast, I don't have to ship the compiler with every chip. And even if I did, it's software, which is much, much easier to manipulate. I say this as someone who codes for a VLIW during my day job. :-) --Joe -- "People tell me one thing one day and out the other." | Re:The author of this article is clueless. (Score:2, Funny) by tumeric on Thursday October 21, @10:56AM EST (#55) (User Info) | | I was moved to send in a reply that the author of the article was clueless -- thanks for getting there first. When the first RISC machines came out, superscalar execution hadn't been invented yet. Some processors (Cray for one) had been doing this years before RISC came out. RISC actually makes superscalar execution easier because there is more consistency in the instructions and they don't hit as many functional units in a single instruction. The fast CISC chips (PII, Athlon) do instruction conversion into RISC, under the bonnet, for this and many other reasons. So if the debate is over, its because RISC won -- big time. I also think that the ideas behind RISC such as "move the complexity from the chip into the compiler" also apply today and that VLIW is an example of this applied to scheduling and the branch hints on the Alpha is another example of this applied to branching. There is also promising work done on MISC (Minimal Intruction Set) with simple chips doing lots of instructions per second. That was a very disappointing article.
| Re:The author of this article is clueless. (Score:1) by Salamander (jjd@banet.net) on Thursday October 21, @12:37PM EST (#70) (User Info) | >>When the first RISC machines came out, superscalar execution hadn't been invented yet. > >Some processors (Cray for one) had been doing this years before RISC came out. There's a big difference between vector operations and true superscalarity. Also, RISC vs. CISC only makes sense from the point where instruction sets were truly complex and there was a choice to be made; many early architectures were RISC of necessity.
| Re:The author of this article is clueless. (Score:1) by David Greene (greened@eecs.umich.edu) on Thursday October 21, @01:23PM EST (#80) (User Info) http://www.eecs.umich.edu/~greened
| | tumeric is talking about the CDC 6600 (Scoreboarding) and the IBM 360/91 (Tomasulo). I believe Cray was still at CDC for the 6600 (but someone correct me if I'm wrong). The rule in computer architecture seems to be that everything was done back in the '60's and IBM holds all the patents. :) None of the stuff discussed in the artical was particularly revolutionary at the time of RISC I. Bringing it all together on a microprocessor was the missing element.
-- Some little people have music in them, but Fats, he was all music, and you know how big he was. -- James P. Johnson | Re:The author of this article is clueless. (Score:1) by JordanH (jordan@greenapple.com) on Thursday October 21, @03:41PM EST (#88) (User Info) | | I believe Cray was still at CDC for the 6600 (but someone correct me if I'm wrong). You are not wrong. The 6600 was Cray's baby, the machine he always dreamed of making. The 6600 came out in 1964 (?) and I believe Cray was still there through the early 70's. Of course, if you look at the instruction set for the CDC 6000 series you recognize that Cray anticipated RISC by a number of years. This observation seems to upset some people for some reason. -Jordan Henderson
| Or perhaps you just can't read so well (Score:3, Informative) by ToLu the Happy Furby (dhandelm@fas.harvard.edu) on Thursday October 21, @04:06PM EST (#89) (User Info) | Now let's see. Why is it that the author of this article is so "clueless", as you say?
When the first RISC machines came out, superscalar execution hadn't been invented yet. Some processors (Cray for one) had been doing this years before RISC came out. Unfortunately, the actual quotation from the article is "When the first RISC machines came out, Seymore Cray was the only one really doing superscalar execution." Whoops. Looks like ya' dropped the ball on that one.
I also think that the ideas behind RISC such as "move the complexity from the chip into the compiler" also apply today and that VLIW is an example of this applied to scheduling Well, that's very forward thinking of you. Of course, I guess that makes you clueless as well, because, once again, it's exactly what the author of the article wrote: "VLIW got a bad wrap when it first came out, because compilers weren't up to the task of ferreting out dependencies and ordering instructions in packets for maximum ILP. Now however, it has become feasible, so it's time for a fresh dose of the same medicine that RISC dished out almost 20 years ago: move complexity from hardware to software." So this leaves us with your remaining "point":
The fast CISC chips (PII, Athlon) do instruction conversion into RISC...so if the debate is over, its because RISC won -- big time. Well that's a brilliant insight you've uncovered there (covered in the article here), but the point of this "clueless" article (which you obviously did not read) was that there no longer is a debate. The term RISC refers to a CPU design philosophy which was invented in 1981. That was 18 years ago. It was intended as a replacement to "CISC", the CPU design philosophy which came about in the early 70's. That is to say, the CPUs of today, whether P6 or PA-RISC or G4, and the systems that they are in, bear almost no resemblence whatsoever to either a "CISC" chip or a RISC chip. The only similarity is that the P6's and K7's of the world are compatible with the x86 ISA, which was originally written (back in 1977 IIRC) for a "CISC" chip. Yes, this adds an extra decoding step (to break down instructions into "RISC-like" ops), and yes, theoretically that means increased die-size and complexity, which of course means lower clock speeds. Oh wait--that reminds me: which currently shipping chip has the fastest clock speed?? Oh yeah--the 700MHz Athlon. With a 750 part set to be shipped later this week. And, looks like, a 900 in time for New Year's. One of those ungainly "CISC" chips, huh. Hmm...but let's take a look at how all those competing "RISC" chips have used their incredibly simple architectures to keep die size down. Like the PA-RISC, which is, IIRC, about 6 or 7 times the size of a PIII. Or those new G4's, with their impressive yield of 0% at 500MHz. The simplicity of today's modern "RISC" chips in action. Now, none of this is to say that the G4 or the PA or whathaveyou isn't a great design. Just that the resemblence of today's CPU's to a true "CISC" or RISC chip is so tangential as to make the categorization meaningless. And as for your "debate"--of course RISC won big time. It came out nearly 10 years after the first chips made with the "CISC" philosophy. As was, IMO, rather compellingly and insightfully explained in the article, "CISC" chips were the best possible solution to the awful state of complilers and memory available at the time. By 1981, the state-of-the-art had advanced to the point where RISC was a better solution. Duh. Since then, compilers have gotten better, transistor densities have increased, and RAM prices have plummetted, allowing all the advancements which the author termed "post-RISC". And, looking at the CPU's of tomorrow, we see all sorts of new techniques on the horizon: optimization based on advancements in compiler/software technology, ala IA-64, MAJC, and (apparently) Transmeta; or optimizations based on incresing transistor densities, like some of the new physical parallelization designs that appear to be a couple generations down the road for Alphas and IBM chips. But as long as people like you insist on categorizing these chips into meaningless 20-year design philosophies, the tech world will be a more ignorant place. What a dissappointing comment.
| Re:Or perhaps you just can't read so well (Score:1) by tumeric on Friday October 22, @05:59AM EST (#101) (User Info) | | Sorry, I read that far too quick and deserved to get my arse kicked. Nice detailed reply. One point that needs to be made lest history is re-written though: And as for your "debate"--of course RISC won big time. It came out nearly 10 years after the first chips made with the "CISC" philosophy. As was, IMO, rather compellingly and insightfully explained in the article, "CISC" chips were the best possible solution to the awful state of complilers and memory available at the time. When RISC came out it wasn't seen as a simple logical progression. I even heard it refered to as a fad that would disappear when transistor counts improved. There were tons of arguments for keeping CISC (it does more work per instruction, RISC processors were only faster because they had more registers, the early Sparcs couldn't do multiplication to save their lives ...) and I remember being called an idiot by an Intel engineer for saying that CISC was not going to last. Digital engineers were also very vocal in damning CISC when the Alpha came out. This was because so many people were defending CISC. I also think that the attitude that RISC is just an ISA (as seen in a lot of replies) is a software persons argument. The thing doing the work in PIIs and Athlons is running simple instructions and is RISC whether it is doing the can-can or emulating x86 as far as the outside world is concerned. That is why some hardware and marketing people think of them as RISC. Sorry for the disappointing comment.
| Re:Or perhaps you just can't read so well (Score:1) by ToLu the Happy Furby (dhandelm@fas.harvard.edu) on Saturday October 23, @09:23PM EST (#119) (User Info) | No problem. Frankly, the only reason I came down on you so hard was that I've really grown to like some of the stuff over at ars, and find Hannibal's architecture articles particularly informative, detailed and, most importantly, written well enough for the layman to understand. In fact, they're part of the reason I'm only a mostly-layman these days. Oh, and because I find /. gets a bit too civil these days; shaking things up when you're pretty convinced you're right is always fun. ;) As for RISC being a true innovation, and not at all obvious at the time: yes, you're absolutely right. It's only in hindsight and with the story smoothed out a bit that we realize that the environment which made "CISC" processors a good design had ceased to exist by the 80's. I don't want to take anything away from the original designers of the RISC philosophy; but still, I very much agree with Hannibal's thesis that that debate has just about nothing to do with the merits of today's CPUs.
| Re:The author of this article is clueless(so true) (Score:0) by Anonymous Coward on Thursday October 21, @11:03AM EST (#56) | To say "cisc vs. risc" is dead shows plain ignorance of the issue. Even if designs from both camps appear more similar, they cannot merge. vliw is a CISCish concept, for which there is not RISC counterpart. Superpipelining has been a real killer in effeciency for CPUs and VLIW has potential for fixing it. That being said, VLIW isn't a garauntee of sucess, probably has more issues in SMP and MPP systems, and doesn't remove responsibility from compiler writers. To prove the point (that it's not all cut and dry), I much rather run on a sparc 2 (40mhz) sparc chip then anything intel has at twice that speed. So there.
| Re:The author of this article is clueless. (Score:2) by Hasdi Hashim on Thursday October 21, @12:50PM EST (#76) (User Info) http://www.bigfoot.com/~hasdi
| The complexity with superscalars is not in the ISA, but in the scheduling. At the most basic level, though, RISC instructions are used because it is (effectively) impossible to schedule CISC instructions for out-of-order execution. Where have you been? Pentium II and K6 (and now K7) has been executing CISC instructions out of order for years! Anyway, I argue that the complexity of superscalars is in the ISA. Most CISC architecture do not embed scheduling information in the ISA, which makes the decoding phase quite complex. RISC helps the situation dramatically because the ISA define each instruction to be of fixed length, so less pipeline stages to find instruction boundary. VLIW's ISA takes responsibility of the scheduling from the processor. EPIC, exposes this scheduling information, the processor still needs to do the actual scheduling. I am opposed to VLIW because of 1) lack of binary compatibility (there workarounds being done in IBM research 2) difficult to fill in all the slots. I don't care how good the compiler is. Most system and application program languages in use today assumes sequential execution. You'll end of with NOPs and unnecessary loop unrollings, which leads to code bloat. The bottom line is about price / performace AND the purchasing power of the consumers. If FPGA technology becomes so cheap that I can get 1 billion gates per chip for only a cent, I'll write my routines in verilog rather than C. Hasdi
| FPGA vs CISC (Score:1) by guardian-ct on Thursday October 21, @02:20PM EST (#85) (User Info) | In many instances, for example in the telecom field, FPGAs have already beat general purpose processors. Many ATM (Asynchronous Transfer Mode, get your mind out of the bank) switches use FPGAs in the crossbar switch (multi-way high-speed data connections with FIFOs (first-in-first-out buffers), for those who don't know what crossbar switches are). Some printers use them to control and buffer the digital video raster that gets sent to the printhead. When there's a mechanical, not pausable, time-critical, function involved, it's usually more expensive to purchase and program a general purpose processor to meet the real-time needs, than it is to purchase and program an FPGA. Programming an FPGA to play tic-tac-toe is just silly. Possible, but silly. This message buzz-word compliant.
| RISC does not mean less instructions (Score:1) by heh2k (thomassr@erols.com) on Thursday October 21, @09:00AM EST (#16) (User Info) http://www.erols.com/thomassr/zero/
| It means less complex instructions. Basically, you break the CISC style instructions down into simpler instructions that each have a very specific task. CISC vs. RISC (in this day and age) has nothing to do with die size or complexity. It's about how the instruction set is designed. (PS, altivec adds 162 instructions, iirc.)
| | | Re:RISC does not mean less instructions (Score:1) by Kinthelt on Thursday October 21, @10:11AM EST (#40) (User Info) http://www.undergrad.math.uwaterloo.ca/~db2nesbi
| | Basically, you break the CISC style instructions down into simpler instructions that each have a very specific task That's what I always thought. What I learned from my last computer design course, was that RISC implemented all instructions in hardware. While CISC implemented all instructions in microcode.
"Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs) | Re:RISC does not mean less instructions (Score:1) by chip guy on Thursday October 21, @10:26AM EST (#44) (User Info) | Your computer course instructor was partially right. True RISC processors do avoid microcode and exclusively use hardwired control logic. But modern CISC implementations use hardwired control logic for most common simple instructions and resort to microcode for the more arcane, multi-cycle CISCy instructions. It is theoretically possible to hardwire all control logic in any CISC implementation but it would be time consuming, buggy, and have little payback. The last x86 to rely exclusively on microcode was the 386.
| Tic-toc (Score:1) by T.Hobbes on Thursday October 21, @09:04AM EST (#17) (User Info) | It dosen't seem to me like there was ever, or ever will be, any real difference; the complexity of chips must increase over time as new functions are added. Every once in a while, someone will say "These are too complex! Let's design a new chip, but give it a minimal amount of instructions! We'll call it Reduced Instruction Set Computing!". Basically, like most other things, it swings like a pendulum. _____________ What happend to all the caffine-oriented names for products? Ah, those were the days... | RISC still is better (Score:0) by Anonymous Coward on Thursday October 21, @09:14AM EST (#20) | I've a few quibbles. First, I think that regarding an architecture such as Athlon or P6 as post-RISC because RISC-like features have been added in the search for complexity is silly. Making it more complicated like tht just emphasizes its CISC nature. Second, I think he has not done enough analysis to decide which features agree with a RISC philosophy. Even when RISC chips get non-RISC features, that doesn't require it to be a good decision, or invalidate the advantages of a true RISC architecture.
| Yuck (Score:0) by Anonymous Coward on Thursday October 21, @09:18AM EST (#21) | A big bloated article to state the obvious. Ars Technica is a joke.
| | | Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @09:30AM EST (#29) | Can we say jealous? So, which web site do you write for? LOL.
| Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @10:42AM EST (#53) | ha ha Well Arstechnica is actually better than here. As we talk hardware, software interesting stuff , whereas Slashdot is just yelling, screaming, FUD and Linux zealotry. =)
| Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @12:40PM EST (#71) | Right on. daft_punk
| Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @12:50PM EST (#75) | yeah, the site has a much higher Signal to Noise ratio! --Hazridi
| Re:Yuck (Score:0) by Anonymous Coward on Friday October 22, @04:50PM EST (#116) | You damn right!! =Chucky
| Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @12:55PM EST (#77) | You're right. You can actually have a valuable conversation at Ars. Who'd want to do that? /. forums rarely rise above a geek circle jerk.
| Re:Yuck (Score:0) by Anonymous Coward on Thursday October 21, @07:35PM EST (#96) | Slashdot -- Where whiney Pengunazis can circle jerk and pretend they are not losers and that they really are important! Have fun boys and make sure to clean up afterwords. --gronk
| RISC was always overhyped (Score:0) by Anonymous Coward on Thursday October 21, @09:25AM EST (#22) | I first encountered RISC in the dim and distant past when, for a brief time, memory was actually fast enough to keep up with (LSI) processors. For a little while there, the idea of simplifying the instruction set in order to make better use of available memory bandwidth was actually a powerful motivation - of course, by the time CPUs designed to take advantage of this were actually in production, the window of opportunity was almost closed. It's hard to imagine how different things were for that brief time in these days when fast CPUs have, and need, multiple levels of cache acting to reduce the "impedance mismatch" between their appetite for memory bandwidth and the capabilities of reasonable main memory technologies... The RISC fraud was perpetuated by researchers who had glommed onto a new paradigm that hadn't been analysed to death. And much that was good did come out of this research, but real RISC CPUs as originally envisioned - well, they're lying over there on the scrapheap of trendy ideas, while the really fundamental work that never got so much hype are so pervasive that most of you would probably argue if told they were originally attempts to keep the RISC dream alive in a world where its original motivation had vanished.
| | | Dear clueless RISC critic (Score:0, Flamebait) by chip guy on Thursday October 21, @09:46AM EST (#35) (User Info) | Last year over 150 million 32 and 64 bit RISC processors were sold. This year the figure is likely to greatly exceed 200 million or roughly twice as many as all x86s from all the vendors. In general purpose computing, around $50 billion worth of RISC-based systems were sold last year. Hardly seems like an idea on the scrapheap to me :)
| Re:Dear mindless RISC booster (Score:0) by Anonymous Coward on Thursday October 21, @01:51PM EST (#83) | I believe the point was that when your CPU runs 4-10x faster than the memoryCPU bus, your bottleneck ain't the CPU core anymore. If you've got more instructions hogging your data bus you won't be processing as much data as you would otherwise.
Myself, I'm still waiting for a CISC processor with a DWIM instruction.
| Re:Dear mindless RISC booster (Score:1) by chip guy on Thursday October 21, @05:49PM EST (#94) (User Info) | Have you ever heard of cache? If you aren't blowing 1.5 or 2 million transistors on an x86 translator to stick on the front end of an OOO instruction execution engine then maybe you'd have more room for cache. And when CPUs start integrating great masses of DRAM on the die (like the M32RD) or doing serious stuff with SMT it won't be bloated x86 cores that will be called on.
| Hey moderator (Score:1) by chip guy on Friday October 22, @03:19PM EST (#114) (User Info) | flamebait? I was getting his attention If presenting cold hard quantitative facts is flame bait then I am out of here.
| Old debate (Score:2) by chancycat on Thursday October 21, @09:25AM EST (#23) (User Info) | What I wish the author made more of a poit of is that this "debate" between camps has been moot for years. I think it can be argued that RISC in its pure sense refers only to those old early 80's CPUs, and everything since then is part of an evolution from the origonal principle. People may like the warm feeling of saying that their chip is part of a greater cadre of RISC(=good) parts, but where ever we are now, we've surely evolved to somewhere else from the old terms. The author also seems too willing to let his writing "make a point" and put people in their place, instead of just trying to educate... Maybe he's hanged out in too many forums where folks are endlessly bickering. I read Patterson and Henesey, - wonderful book... anyone interested in the subject should pick up a copy. E Evan - MCSE, Macintosh Advocate - Man am I confused. Duke Grad. AT&T Employee | Earlier RISC vs. CISC articles on Ars Technica (Score:1) by vrt3 (Roel.Schroeven@advalvas.be) on Thursday October 21, @09:26AM EST (#24) (User Info) | | Some time ago there was another series of RISC-CISC articles on Ars Technica, well worth the reading: RISC vs. CISC RISC vs. CISC II: Hellazon fires back RISC v. CISC III: The last word?
| | | MacKido rebuts...... (Score:1) by MushMouth (smushmoth@yahoo.com) on Thursday October 21, @12:41PM EST (#72) (User Info) | http://www.mackido.com/Hardware/PIIRIS C.html http://www.mackido.com/Hardware/A ltiVecVsMMX.html
| Re:MacKido rebuts...... (Score:0) by Anonymous Coward on Friday October 22, @12:59AM EST (#99) | Unfortunately, MacKido rarely publishes stuff from people who know what they're talking about... this is no exception.
| RISC as a philosophy (Score:0) by Anonymous Coward on Thursday October 21, @09:29AM EST (#28) | The difference between RISC and CISC is not supposed to be a clear cut distinction, where you can take every architecture and neatly pidgeonhole it into one of the two. I think in an attempt to understand it a lot of people try to think about it in this manner, but then again this is true for many things. RISC is not a specification, it is more of a philosophy, a set of general design principles. For example, I would not consider a small number of instructions to be indicative of RISC. For one thing the word small is ambiguous. On the other hand a general principle used in RISC design is to optimize for the common case. Now it is not all that easy to look at a system and say "Ah yes, they optimized for the common case, it must be a RISC design". Whereas it is rather easy to look at a system and say, "Ah, there are 75% fewer instructions than other similar systems, it must be RISC". I think that this ease of classification is what leads many people to adopt the misconceptions that they have on this topic. Additionaly RISC is a design philosophy not a categorizing method, which explains why people run in to problems trying to use it in this manner.
| | | Re:RISC as a philosophy (Score:1) by ghostdancer on Thursday October 21, @09:49AM EST (#36) (User Info) | So... what is a RICS? What is its 'philosophy'? How do you define a RISC?
| Not this nonsense again (Score:3, Informative) by chip guy on Thursday October 21, @09:31AM EST (#30) (User Info) | I am sick and tired of people who cannot fathom the difference between an abstract instruction set architecture (ISA) and a chip implementation with functional units, gates, and flops. The terms RISC and CISC refer to ISAs. If you build a CISC processor using many of the same implementation tricks that are commonly used in RISC processors then fine for you. But you still have a CISC MPU. RISC and CISC have always shared many implementation details be it triple ported register files, on-chip cache or a 32 bit adder. Look at this way. Lets say CISC is analogous to a bungalow while RISC is a two story house. These are architectural differences. Lets say that in the early days of house building bungalows were always built out of brick with load bearing walls while two story houses were wood framed. If some joker comes along and builds a bungalow with wood frame technology it suddenly doesn't make his edifice a two story house even though it may be a big improvement on earlier bungalows. While CISC has generally caught back up to near RISC for integer performance once MPU complexity reached about 3 to 5 million transistors the ISA differences do matter. For example, an out-of-order x86 with a translator front end and register renaming might have 16 or 32 physical GPRs instead of the eight architected GPRs. But the compiler cannot address these physical registers, it only sees eight. This means that an x86 compiler will have to spill values to memory much more often than a RISC compiler and it will not be able to exploit performance enhancing techniques such as register assignment to local and globals variables and software pipelining nearly as well as a RISC. There is also the baggage effect with CISC architectures. For example, nearly every x86 instruction modifies flag bits as well as GPRs. This means that the flags become a central dependency choke point that requires a lot of attention to address. CISC ISAs also invariably have multiple instruction sizes. This means that a CISC CPU will typically require an extra pipe stage or two to sort out instruction boundaries regardless of how "RISC-like" the backend looks. People who believe the Intel party line of "x86 was CISC but is now RISC" should pay attention to what Intel is doing rather than saying. They are busy spending billions to develop a new RISC-like 64 bit architecture to carry them into the future. It is true AMD will stretch x86 to 64 bits but they had to change the x86 floating point programming model to a RISC like flat register file with three address instructions to even attempt to close the distance on FP code. And AMD's future success in keeping up with IA-64 and SMT superscalar RISC implmentations is far from asured.
| | | Re:Not this nonsense again (Score:2) by SEE (ehrbar@home.com) on Thursday October 21, @11:35AM EST (#60) (User Info) | Obviously you didn't read the article, but... What's RISC about and ISA with AltiVec instructions? You know, single "instructions" that take multiple cycles to process because they do multiple things? That's the point. Not that "x86 is now RISC" but that traditional RISC is as dead as traditional CISC. If RISC is a two-story house and CISC is one-story, then the current chips are all three stories. Steven E. Ehrbar ehrbar@home.com | Re:Not this nonsense again (Score:1) by MushMouth (smushmoth@yahoo.com) on Thursday October 21, @04:07PM EST (#90) (User Info) | AltiVect is a SIMD unit connected to the PPC it is more like a separate processor for more information about AltiVec read http://www.mackido.com/Hardware/A ltiVecVsKNI.html
| Re:Not this nonsense again (Score:1) by chip guy on Thursday October 21, @04:53PM EST (#92) (User Info) | Actually I did read the article. The historical background wasn't bad. I even read the university paper linked and that was just a plain waste of time. As for your comments, I don't know of a single RISC processor that doesn't take "multiple cycles to process" an instruction. The classic 5 stage RISC scalar pipeline for example takes at least five clocks to process an instruction in its entirety. Or perhaps you're groping in the dark for the concept of instruction execution latency. There was no tablet handed down from Mt Olympus by John Cocke and Seymour Cray that says all RISC instructions must have a one cycle latency. Find me a RISC processor that implements FP arithmetic instructions with less than three clocks of latency. If the Altivec instructions take more than a single clock of latency then pipeline them, tell the compiler what their latencies are so it schedule around them if it can and be done with it. You claim to understand it, so please try to explain to this simple engineer why "traditional" RISC is dead? Did someone add a bit count instruction or a reciprocal square root approximate and suddenly the instruction count went over some magic number?* Or maybe its this out of order execution stuff that's got you "new age" or "third way processor" advocates thinking that RISC and CISC have merged. Whip out a programmers reference manual for the 386 and the MIPS R2000. Now do the same thing for the Pentium III and the MIPS R14K. A decade and a half later and the two ISA's don't seem to have gotten much closer to me. It must be implementation then, the block diagrams have much the same names now. I tell you what, if I could get a circuit schematic for the 32 bit adders in the R2000 and the 386 could you examine them and tell me which came from the RISC CPU and which came from the CISC CPU? No? Yet the RISC CPU yielded far higher performance than that CISC CPU even with smaller off-chip cache, older semiconductor technology and one third the transistor count. The only people who promulgate the view that RISC and CISC processors have somehow merged into some bizarre hybrid of the two seem to be those under the hypnotic influence of marketing department of the vendors for the few remaining CISC processor families. Those who are actually designing RISC processors don't seem to have difficulty in telling them apart. *The only rule in the RISC school of processor design that relates to how many instructions a RISC ISA should or should not is that you don't add another instruction unless your performance increases for your target applications by a worthwhile amount even after considering the impact of adding the new instruction on the microarchitecture and cycle time of likely implementations.
| The 'post-RISC' world (Score:3, Interesting) by Mr Z (moc.tenemirp@c2u41mi) on Thursday October 21, @09:40AM EST (#32) (User Info) http://www.primenet.com/~im14u2c/
| I think most people have realized that RISC CPUs (in the sense of the early MIPS and SPARC designs) have not been made for a long time. Nowadays, the only real remaining differentiator between a "RISC" machine and a "CISC" machine is whether the instruction set is LOAD/STORE based or has memory operands on various instructions. There are several reasons for this: -
Perhaps the largest reason: Backwards compatibility. If you look at the MIPS and SPARC architectures, they both brought to the table the concept of "delay slots". For instance, a LOAD instruction on MIPS won't write its result until after the second cycle, since the LOAD is pipelined over multiple cycles. (SPARC's delayed branches are similar.) Change the pipeline depth, and you sign yourself up for alot of hocus-pocus to continue playing this charade. -
The relative cost of operations changes pretty radically over time. For example, when RISC debuted, ideas such as including a multiplier on-chip were out of the question, since they cost too many transistors. So instead, programs implemented multiplies with shifts and adds, or in some cases, with lookup-tables. Nowadays, multipliers are relatively cheap when you consider how much the transistor budget has grown. -
Memory latency has gotten really bad relative to CPU performance. This is one of the largest drivers of out-of-order issue, actually. IBM invented this way-back-when before caches were feasible. (It escapes me on which machine they did this, but it was one of the old mainframes.) The idea is that you can cope with latency by allowing instructions to run when their data arrived -- whether it's from a slow memory or slow floating point unit. (Those of you with Hennesey & Patterson on your shelf: Go look up the Tomasulo scheduling algorithm.) -
The cost of communication and control has gone way up as pipelines have gotten deeper and transistors have gotten faster than the wires that connect them. "Complex" instructions which reduce communication, and sophisticated branch-prediction schemes which try to flatten control are attempts to address these issues. The point is that these are difficult problems, no matter what type of architecture you have. Even Alpha spends alot of transistors allowing such things as "hit under miss" in the cache (allowing one stream of instructions to proceed while another is stalled waiting for a cache service). Every so often, when the gap between the original "programmer's model of the architecture" and "what we can do easily in silicon" gets too wide, it becomes necessary to move to a new paradigm. With this shift comes a new programmer's model. Moving from "CISC" to "RISC" was one such paradigm shift. One could argue that we're due for another one, and that VLIW/EPIC-like schemes are the new contenders. Some approaches, such as traditional VLIW, say "We're not going to worry so much about bout presenting a traditional scalar model to the programmer. We're going to expose our complexity to the compiler and let it do its best, rather than play tricks behind its back." These work by exposing the functional units of the machine, removing alot of the control complexity. These are today's "direct execution" architectures. (See TI's C6000 DSP family for a live example of VLIW in the field.) Intel's EPIC takes VLIW a step further. It adopts alot of the explicitness of VLIW, but it retains alot of the chip complexity that's required to retain compatibility across widely varying family members. It's too early to know how this will turn out, but I'm somewhat concerned that it does not reduce complexity. All-in-all, it'll be interesting to see how this turns out. Who knows what type of architectures we'll be programming in 20 years... --Joe -- "People tell me one thing one day and out the other." | /. Effect Strikes Again (Score:1) by Spud Zeppelin (spudNOSPAMzeppelinATspudNOSPAMzeppelinDOTCOM) on Thursday October 21, @09:42AM EST (#34) (User Info) http://www.spudzeppelin.com
| It appears that we've managed to seriously impede Ars Technica's ability to service all the requests they're getting at the moment...
This is my opinion and my opinion only. Incidentally, IANAL.
"Sometimes a little brain damage can help." -- George Carlin | | | Oh my god, you killed ArsTechnica! You bastards! (Score:1) by brianvan on Thursday October 21, @09:55AM EST (#38) (User Info) | I was surfing around and since I ususally hit Blue's - Ars - ABCNEWS - Slashdot in the morning, I saw the link on Blue's and looked forward to reading the article. Then I started waiting for Ars to load. In the meantime I opened another browser and hit ABCNEWS and then Slashdot. I saw the article on here and I thought, "Hey, that's great, they'll get a lot of visitors now". Ars still wasn't loading. Then the lightbulb came on... goddammmit, I wanted to read Ars today! I thought their servers could handle a lot, but apparently they went from "Apache on a 200-node Beowulf" to "Win98 running PWS while someone's playing Q3Test" performance. Hopefully the article gets mirrored so that I can get my lovin spoonful of Ars sometime today... at least the forums still work...
| What we need ... (Score:2, Insightful) by LL on Thursday October 21, @10:03AM EST (#39) (User Info) | ... is a verifier for the interpreter to the compiler of the vm translator that emits code to the vectorising assembler optimised for the hardware scheduler :-). If you look at any high level abstract language (say Python) it goes through a number of stages, each of them designed to feed into the lower layers. The debates about the various schools can be viewed as an on-going bun-fight between the various groups as to who gets the largest slice of the $$ pie and simplified workload. In some ways, the hardware guys have a conceptually easier task, they get to include more of the surrounding chipset. The software language or API developers are forced to explore unknown territory. Witness the fumbled gropings to move beyond OpenGL to higher level 3D scene representation. The rather interesting factor is that the OpenSource scene allows flexibility for the software and hardware to be realigned periodically. The example I'm thinking about is the GGI project and the move towards the Graphics Processing Unit as a self-contained CPU instead of an add-on video board. The next step might even be dedicated I/O/media processors combining FibreChannel, TCP/IP, SCSI, XML/Perl/Java engines, codecs, etc ... As Linus pointed out, controlling the complexity of the kernel requires understanding very clearly the minimal protocol that is needed to communicate between the different functions. The biggest problem nowadays is not actually technical (tough but doable) but legal. Witness the jockeying around System on a Chip where you have to combine multiple IPs along with the core. Hardware vendors have cross-licensing portfolios and reverse-engineer their competitors to copy the ideas anyway. Linux avoids the problem by making everything GNU and thus designers/engineers can concentrate on the job without fighting with the lawyers, as well as defining prior art (cf with universities rushing to publish the human genome before the commerical mobs fence it off). Given the fast pace of the industry, the market is a stronger judge than any legal protection (why bother protecting something trivial that will be obsolete in a few years?). Perhaps in a few decades, people might look back and consider the millstone the patent system has become. The biggest open question IMHO now is how to get multiple internet sites to interoperate. For example, some people might wish to combine customised /. filtering with references to Encyclopeida Britanica or archived news sites. Much as EBay might squeal about sites "stealing" their auction databases (what they want to do in practice), it is a way of creating large aggregated information complexes. CPU tricks and speed races will always make headlines but despite the appeal of multi-gigahertz chips, the information backlane will remain a mess until the telcos/cable/sat get their act together. LL
| A functional distinction not an engineering one (Score:1) by gelfling on Thursday October 21, @10:11AM EST (#41) (User Info) | In the early days of the RISC the research indicated that relatively few instructions did most of the work. In fact the earliest RISC CPUs had something like 30-40 instructions. Production versions had to do more than most of something so they had, for example in the first Power chips, 170 instuctions. This was in comparison to IBM TCM processors which had over 370 instructions. In the ensuing years the number of instructions in RISC hardware has gone up so from that perspective the difference between RISC and CISC is pretty narrow. As you all know the difference is now in the way that each type handles different types of operations eg. FP vs. Integer while the basic approaches to pipelining, scalar-ality, branch prediction are the same.
| RISC=load/store + fixed I-size + software burden (Score:3, Informative) by Anonymous Coward on Thursday October 21, @10:27AM EST (#45) | The author of the article rightly notes that a basic design philosophy difference is where the burden of reducing run-time should be placed. The original RISC philosophy was to place the burden on software--this is especially true of (V)LIW processors--whether the programmer, the compiler, or the set of libraries. CISC (or more rightly "old style") design philosophy sought to place the burden on the hardware. Effectively microcoded CISC is like RISC with a fixed set of library functions in a specialized read-only high-speed cache. (The obvious limitation of this being that the library is fixed in hardware.) Separating load/store into a specialized (memory) instruction nearly forces fixed instruction size (the real mark of RISC). Yet this also works with the general idea of modularized (and potentially superscalar) processing--of course, the same could apply to microcode. Fixed instruction size has a consequence for memory access. A CISC (variable length) instruction fetch would either have to load a maximum-instruction-size number of bytes or use multiple fetches for longer instructions. (One could reduce the performance loss of this if the first load included the opcode and later loads would contain (optional) register ids or immediates (hard-coded values). Since the register ids might not be needed until a second or third stage of the pipeline, the load delay would be invisible--the next instruction fetch would forward the values to the appropriate place in the pipeline. This would make some instructions very fast with a low memory bandwidth--the number of additional values needed might vary from 0 to 3 ("save state," e.g., might require no arguments, while increment might require one argument.)) The RISC vs. CISC debate also concentrates on general purpose processors. In a single, purpose processor (with a stable, well-defined operation set), a direct-execution CISC design would make sense because the "library" of code is so small that hardwiring it (not merely placing it in ROM for a microcode implementation, though such would also be more efficient that a RISC design, it seems) would increase speed. This, of course, assumes that the design costs are low enough to justify making a specialized design for a specialized function. (With improved design tools and efficient low-output manufacturing, this could become more common. Of course, some are looking to processors that dynamically change their wiring to allow changes of specialization without replacing the hardware.) Certain classes of Digital Signal Processors would seem to fit into this category. 2D and 3D video accelerators--which rely on a generalized processor for certain functions--might be another reasonable CISC application (well defined problem, very limited instruction set required, relatively stable algorithms). A true post-RISC processor (for general purpose computing) would take advantage of hardware scheduling (which allows scheduling based on the current data--something even a compiler cannot do), compiler optimization (which would probably include (V)LIW probably with some predication information), and programmer knowledge (a high level language and set of libraries that allows the programmer to share knowledge of the design with the compiler). IA-64 seems to place too little burden on the programmer (perhaps rightly based on the lack of time put into writing code well--by open-sourcers who often just want to make a working program (not considering performance, cooperative development, system integration, etc.) and by 'commercial' programmers who are often trapped by unrealistic deadlines (it is faster in the short term to implement a kludge than to design (write) or research (find another's implementation) good code)) and excessive burden on the compiler (this MIGHT be reasonable since Intel can control the compiler--that being a single unit of coding). IBM's Power-4 seems to emphasizing programmer cleverness (multithreading, multiprocessing, tight libraries) and to a lesser extent compiler cleverness. What I wonder is why no system seems to support vector-processor-style non-unit stride in the cache (This could perhaps be implemented by having a vector mode which took, say, one set of a 2-way set associative cache and used it for non-unit offset entries. Say every N cache lines might be associated with an address, offset, and length. This would make certain vector processor functions work very well in general purpose processors.), why a sticky bit is not provided for cache (This would allow code fragments that are known to be reused somewhat frequently but would otherwise be removed by other loads.), why memory is not segmented into non-virtual-addressed kernel, non-virtual-addressed common library, and virtual-addressed application space (This would seem to allow some of the benefits of embedded systems without losing the benefits of virtual addressing where it makes sense. The compiler would use a table of system-call locations and common-library-function locations so that at linking, the jumps would be to these absolute locations. Of course, changing the libraries or kernel would require relinking all applications, but this might be relatively quick and the frequency of having to do such could be reduced by placing libraries like libc (commonly used, very stable implementation) at the beginning of the memory space and using small functions or even empty space to pad larger functions. Placing the kernel memory space onto a processor daughter card would also reduce the card-board memory traffic. Using separate kernel caching might also reduce application cache misses after a kernel invokation. The memory access style of kernels might also be used to design that specific memory system--the kernel (and the common libraries) are not paged out to disk, so the instruction memory could be designed for very slow write and fast read. (Whether the improved performance would justify the cost of a specialized memory system is questionable.) Paul A. Clayton (not quite AC)
| | | !!Lightbulb!! (Score:1) by The Creator (root@internic.net) on Friday October 22, @06:59AM EST (#103) (User Info) http://fmf.webprovider.com
| >Effectively microcoded CISC is like RISC with a fixed set of library functions in a specialized read-only high-speed cache. Now that just gave me an idea: What if that cache was also writeable? Such a CPU could emulate _any_ architecture. At _full_ speed(anyone?)!
LINUX stands for: Linux Inux Nux Ux X UNIX stands for: UNIversal eXperts operating system | Re:!!Lightbulb!! (Score:1) by Inoshiro on Saturday October 23, @01:32AM EST (#118) (User Info) http://www.thock.com/Dylan/
| I was thinking that perhaps he was a Transmeta insider, giving away info, until he put his name at the end :-) Listen to this line of thought. We don't have a video proccessor of common VGA and 3D functions in the CPU, as it doesn't make sense for a home system where we might want to upgrade the video card. For the same reason, why not make the module that (on the K6es, at least) translates the CISC instructions into micro-ops & schedules them. Want more Mhz? Replace the micro-op executor (CPU). The company found a problem? (F0 0F, Coma, etc) Replace the module that converts the instructions. Perhaps a newer algo that makes the chips faster w/o needing a faster Mhz core? I'd buy it. A chip on the motherboard that is wired to convert CISC to micro-ops, schedule, and send along to a core would be a very easy way to also enabled multiple instruction sets. This sounds like what Transmeta was doing (their patents). This will be more important as IA-64 and the K8 (?) will probably have divergent 64-bit instructions. Why miss out on either's programs? Buy a Transmeta super-CPU :-)
--- Internet Explorer (n): Another bug, that is, a feature that can't be turned off, in Windows. See also: monoply. | Excellent article (Score:2) by Salamander (jjd@banet.net) on Thursday October 21, @10:31AM EST (#47) (User Info) | Both the Ars Technica article and the MSU paper to which it refers are very well done, providing an excellent introduction to material covered in greater depth in Hennesy And Patterson's[1] Computer Architecture: A Quantitative Approach. My one quibble is that the AT author gives the basic performance formula in what I consider an "upside down" form - time/program rather than work/second - which I think makes it harder to understand some of the later points. Like Ditzel, I pine for a return to the days when true RISC architectures existed. The principles involved haven't really changed, and I think some later "evolution" has been misguided. See my recent posts in the "Intel Athlon-Killer" article for more details if you're interested. [1] I can never remember which letters in which name get doubled, or which one was at Berkeley and which at Stanford. Apologies for any errors on either count.
| The transmeta guys seem to have the idea... (Score:0) by Anonymous Coward on Thursday October 21, @10:32AM EST (#48) | They can produce the advantages of both, since they can present a CISC architecture, with all the fancy instructions, which then get translated (i.e. JIT compiled) into the native instruction set of the core processor.
| | | Re:Ditto picoJava (Score:0) by Anonymous Coward on Thursday October 21, @10:42AM EST (#51) | There are many RISC-emulate-CISC ideas out there, include all post-80386 Intel. If you design for the best high level language, then you may win too.
| It's about silicon budget (Score:2, Interesting) by jguthrie (jguthrie@brokersys.com) on Thursday October 21, @10:42AM EST (#52) (User Info) http://www.brokersys.com/~jguthrie/
| | Some years back, someone pointed out the real difference between CISC and RISC processors: If it was released after the 68000, it was RISC. Otherwise, it was CISC. While that is an oversimplification, it looks an awful lot like truth, sometimes. For years, processor manufacturers have touted their new "RISC" processors even though those "reduced" instruction sets might have more instructions than the 8086. Of course, the real hallmarks of a RISC processors are the load-store architecture, the large general-purpose register sets, and the uniform instruction size, but even those aren't sufficient to give a significant performance advantage to a computer based upon the RISC architecture. In fact, various benchmarks provide evidence that CISC vs RISC has very little effect on the performance of the computer. So, where did the RISC vs CISC distinction come from, and why do RISC processors have a reputation of being faster, all other things being equal, than CISC processors? The answer has to do with what is now the prehistory of microcomputing. Back in the dim dawn of history (early 70's) microprocessors were for embedded systems. They were, therefore, designed to minimize part count and that meant optimizing the program space. The early embedded systems were programmed universally in assembly language and programmers typically used various tricks to use space very efficiently because space was more at a premium than time. The complexity of those early embedded systems processors was mostly focused on reducing instruction count and instruction size as much as possible. "Bit mining" while it is still around today, was a way of life for the early microprocessor programmers, and the processor manufacturers built processors to facilitate that effort. However, in the middle of the 70's, some people started putting these processors into general-purpose computers, and the microcomputer market became significant. That drew the attention of some processor designers who wanted to add some of the advanced performance-enhancing features, like caching and pipelining, from minicomputers and mainframes, to the micros. The only problem was that the largest scale of integration available in the 70's was a few thousand transistors. When you've got 4000 transistors in your whole processor, you're going to need to trim unnecessary functionality away from the whole processor if you want to add an on-processor cache that's of some use to somebody. Hence the desire for a reduced instruction set. Originally, the idea was to take those transistors that would otherwise go into complex instructions and put them into performance-enhancing features. The loss of memory efficiency was not a problem because they were intended to be put into fairly large, fairly capable, and fairly expensive computers. Of course, now the processor designers have silicon budgets of millions of transistors, and the amount taken up by the instruction set is relatively tiny. That means that, in the 20 or so years since RISC processors were first envisioned, the instruction sets of the so-called RISC processors have gotten far more complex and the CISC processors have gotten essentially all of the performance-enhancing features of the RISC processors such that there is no real difference between them any more. Moore's law has made the distinction obsolete.
| | | Re:It's about silicon budget (Score:1) by chip guy on Thursday October 21, @11:41AM EST (#63) (User Info) | re: CISC vs RISC has very little effecton the performance of the computer. Sorry but you are quite wrong. If you compare RISC and CISC processors built with equivalent technology from the mid-80's to today there is an obvious difference in performance. Here's some "best of breed" matchups (RISC vs CISC): 1) MIPS R2000 vs Intel 386 2) HP PA-7150 vs 0.8 um (5V) Pentium 3) Alpha 21064 vs NVAX (same damn process!) 4) Alpha 21164A vs Pentium Pro 5) Alpha 21264A vs Pentium III (Katmai) In each and every one of these matchups the CISC part comes out a distant second. BTW, I am eagerly looking forward to see how the 0.18 um Alpha EV68 stacks up against Coppermine and K7, and how EV7 stacks up against Williamette ;-)
| Re:It's about silicon budget (Score:1) by Chaostrophy (chaos@chaostrophy.remove.this.phrase.org) on Thursday October 21, @01:16PM EST (#78) (User Info) http://www.chaostrophy.org/
| Well, throw transitor count in there, and see just how much that 8080 (or 8008? I know you can boot Z80 cp/m on a 486, so...) compatability costs Intel! It is HUGE, the x86 is a tribute to the skill of Intel's designers and manufacturing, and of course the money they get from the high margin volume that they sell. It's like making a flat head harley do 200 mph, sure you could, given absurd amounts of effort, but I can go buy a new bike that with a small effort will crack 200 mph (heck, the new ones will do it stock with the right conditions).
| Comments (Score:4, Insightful) by bhurt (bhurt@visi.com) on Thursday October 21, @10:54AM EST (#54) (User Info) | | First of all, FP doesn't add all that many instructions to an architecture. The alpha has about 6 FP instructions- load fp, store fp, add, subtract, multiply, divide. The PPC (ingoring SIMD) takes this up to about a dozen or so- two of which have as their sole purpose in life making sin() etc. fast to implement (three instructions, vr.s a dozen o |
| |