I've been playing lineage for about 6 months now. I can tell you Lineage inspires this kind of thing. I have been insanely angry at other players in the game enough at times, I probably would have beat the sh_t out of them if they had been across the room too.
I guess you have to play lineage to understand, I will try to explain. The game is damn addictive for some reason or another. I haven't spent this much time playing a game since warcraft II (multiplayer of course). The graphics suck and the sound is really repetitive, yet for a few months I found myself playing 6 to 8 hours a day. By the time your player hits L35 or so you have spent a lot of time wandering around and killing shit. The game gets gradually harder to level and it takes more and more money (a hard resource to come by in decent quantities) to buy armor and weapons that are good enough to do damage to the kind of monsters you are hunting. All that is great until some smart ass shows up and decides that you are a prime target for them to bully around. Sometimes its completely unprovoked and you just discover you have been jumped, sometimes a battle of words elevates to blows, or you get pulled into someone else's conflict because your in the same pledge. Once it comes to blows a P-P conflict goes one of two ways. Either you are more powerful and you kick their ass or they kick your ass. The result either way can be REALLY frustrating. If you win and end up killing them there is a good chance you will end up loosing a lot of lawfulness points and hence 'going chao'. This isn't bad in itself except now if your killed you drop stuff as well as loose exp. This means that you loose armor and weapons that might have taken you a month to get while you are trying to become lawful again. It doesn't matter how 'good' you have been. Killing someone is instant chao. Now the monsters are all aggressive towards you and you have other players who take it upon themselves to hunt in packs and kill chao players. Basically your life sucks until you manage to gain enough lawful points to stop attracting monsters, other players, and dropping your hard earned equipment. Being killed is often times just a better situation. That though has its own tribulations. As mentioned above if your not lawful enough you drop items when you die. Its like 'bamb' the last weeks worth of playing down the drain in the 5 seconds it takes to die. Not only that but you loose 10% to 15% of your current level (down leveling if necessary to loose that much). When your level 20 this isn't a real issue because you can make 15% in a half hour of playing. When your level 45 it can take 20 hours of play to make that much exp. So someone kills you and you drop your +6 Elven Plate Mail. Then your in the hole 400,000 adena (probably about 60 hours of play to make that much money if your L30) and another 20 hours of play to get the 15% exp back. Then the rage starts. WFT!, was that person thinking coming up and messing with me when I was just out here minding my own, hunting in Dragon valley. Then the rage really kicks in, I just spent the last 20 hours of my life to have this ass come along and mess it all up! There are very few options because the type of player that just killed you is now level 50 has a -50 AC , a +7 sword and 6 L30 dogs. Your only hope to exact revenge is to knuckle down, gain a few levels and then teach that SOB a lesson. On the other hand you could call upon your pledge to start a war with this other persons pledge. Now you have involved 20 of your friends in the fight along with 30 of the other guys friends. Which results in 30 new people in the game who are out to kick your ass when they see you out hunting and trying to gain a level. Ahhhhh! frustration!
NCsoft started a new server where you can't PK other players. Except that now there is absolutely no deterrent to keep people from hanging out on already over crowded orc beach and stealing your totems or the 50 other problems in the damn game. The problem is in the beginning the rewards are easy to come by. The game is fun and you quicly become addicted. Then its like bad drugs. It takes more and more effort to find the fun part (killing new monsters, getting a new level or some new spells, whatever) and the rewards are slowly overcome out by the anoyances of the game. This ends up leading to fustration when you want a new spell but you have to kill another 10,000 orcs to get enought money to buy it or you have to kill some outragious number of Ghast, Basi or whatever in the hopes that you will get lucky and have the item dropped for you. After four weeks killing ghast and you still don't have summon monster the frustration builds and builds and builds. Eventually you turn into a bully to burn off some steam, thereby frustrating some other lower level player who just had a few hours of work destoryed for your cheap thrill, or you quit the game. The end result is unhealthy for the game. The good people quit, the bad people stay around and bully the other players around.
Hmmm.. Thats interresting (CINT=404, CFP=711). What I want to know is why they are not on the official SPEC CPU page. Comparing them with the PIII, P4 gives
CINT Dell PIII 1.0ghz-418base (not bad)
CINT Dell P4 1.7ghz-575base (oh, not looking so good)
CFP Dell PIII 1.0ghz-292base (really nice)
CFP Dell p4 1.7ghz-593base (nice)
Which is pretty decent. The integer performace is about what a decent RISC processor (not Sparc crap, the bottom of the performace heap) should get at the same clock rate, while the FP performance is quite stellar! Not bad, the stream looks pretty good too, I would expect more from a brand spanking new arch, but its not bad...
As for reliability.... IC engines have, what 500, 1000 moving parts?
500, 1000? The basic engine doesn't really have that many moving parts. Lawnmower engines have maybe 5 to 15 moving parts. 1 Crank/flywheel, 1 piston, 1 rod, 1 cam, 2 valves, 1 choke, 1 throttle, 1 PC valve and 2 crank bearings. Rotary's, diesel, and 2 stroke engines have even fewer. The rotary does away with the piston/rods/valves and on a power/weight scales does considerably better than most electric engines and has a pretty flat power curve.
Scaling this up for a modern 4 cyl, You might have 1 crank/flywheel, 4 pistons, 4 rods, 1 cam, 8 valves, 1 oil pump, 4 injectors, 1 fuel rail regulator, 1 throttle, 1 PC, and assorted bearings. Crank angle sensor and electronic ignition does away with the distributor. Then there are maybe a half dozen non critical emissions related parts, EGR valve, cold start bypass valves, etc. Then there are assorted other things, water pump, temperature valve, alternator, and fuel pump. After removing things you would want but don't need like the power steering, air conditioner, power brakes, etc you probably only have around a 75 to 100 moving parts on the average engine. 50 of these 100 or so parts could be removed if needed or replaced with non moving systems. Then there is the
drivetrain...
What I was getting at is your numbers are more likely (if a little low) for the whole automobile. Saying an electric automobile has 2 moving parts and a normal automobile 1000 is somewhat misleading. If pure electric vehicles ever take off then you will discover a bunch of 'extra' parts for air conditioning, brake boosters, or maybe even water cooled electric motors. Its hard to predict which way the drive trains will go, but it is definitly possible that they will be relativily complicated and not look anything like direct motor to wheel couplings. Modern hybrids are pretty complicated and don't really save that much in the way of complexity. Complexity and reliability are related but there are lots of engines that are complex with very high reliability numbers, car engines arn't reliable mostly because they don't need to be.
Where are the SPEC numbers? I still haven't seen any official numbers! IBM/Intel/etc don't have the Apple excuse that the benchmark doesn't support non UNIX like OS's! So, why haven't any number been published? Is the Fortran compiler that much of a piece of crap, or does the chip just do very poorly? Along these lines where are the OS-X based spec numbers or is this another case of Apple not wanting to publish bad numbers for a benchmark designed to create an even playing field for diffrent arch,OS combinations?
Fortunately, there was a little company called NexGen. Simply put, they devised a way to hook up an instruction translator to a RISC core. I bought one of those motherboards in 1993 and it works well to this day - using Linux, of course. AMD bought the company and used the technology to to develop the K5 and the K6 series processors. I don't remember NexGen making a lot of money, either, but then they weren't public for very long before AMD bought them out. AMD had the brand name recognition as well as the funding to push the new technology.
The concept of hooking an instruction translator to a RISC core wasn't just a NexGen idea. The concept was well into development. The original AMD K5 was going to be an x86 front-end to an updated AMD29000 arch. Everyone, except Cyrix, had shown that their designs for their next generation processors were going to be designed this way. The whole concept is really just a nice name for opcode to microop decoding in hardware, which was the original design point for CISC processors. A decoder sitting in front of a microop engine. RISC processors on the other hand were just suppose to export the 'microop' engine to software and let it solve all the nasty problems.
As far as NexGen's failures, these have been traditionally due to the mistake that nexgen decided to come out with a proprietary bus and processor interface. Everyone else at the time was sticking to designs that allowed them to be plugin compatible with intel processors. You could just pull out your intel 8086,286,386 or 486 processor/crystal and replace it with a clone processor from the same family. Then nexgen comes along with a processor that ran 33% better at the same clock rate than the Pentium but required a new motherboard that was incompatible with the rest of the market. This is effectively what killed them at the time. Everyone else just had to worry about working with the intel standard interface, once they did that, it opened up a huge market of 3rd party chipsets they could use. Nexgen had to design and produce in volume not only the processor but the motherboard. This was a big hurtle for them. So when AMD kept having problems with their K5 and it looked like they weren't going to have a product to compete with everyone else's, they bought the NexGen development team, massaged the NexGen 586 into the K5 which was compatible with the standard 486! (I seem to remember) socket and lost a whole crap load of performance doing it. It bought them the time to bring the K6 to market though.
Oh, and that game of catchup to Intel? Well that was caused by the huge lawsuit between Intel and AMD that dragged on for years. Intel didn't directly get what they wanted (which if I remember right was a complete halt of AMD x86 processor production) but they did slow AMD way down. AMD went from the company that was messing up Intel's processor speed releases to the company that was always playing catch-up. Ah, the fond memories of my AMD 286-20 kicking the crap out of a friends Intel 386DX-12 (or maybe it was a DX-16).
Basic CPU design is actually a lot easier than c-like compilers. I re-implemented, from scratch, an 8-bit design presented in a comp-arch class in about 6 hours of development. Another 2 and I had it pipelined and the simulations were running at about 4x the original design spec. Welcome to the world of modern HDL's. My estimated transistor count wasn't much larger than the original either, although it was large enough that if I were actually in the original designers shoes I would have had to do some serious work to trim it down.
The idea of 'plug-ins' for file systems isn't new. Its new to Linux, because Linux has a very messy driver model, due to Linus's early insistence on monolithic kernels. Lots of other OS's support this idea, most are designed from the start to support this. The evil NT/2k from M$ has the ability to add 'filter' drivers to all the devices in the system. The result is that in NT/2k you can write your encryption/compression filter and it will just work on top of any file system running on the OS.
Re:Broadcast TV generally isn't worth it anyways
on
Digital TV Approaches
·
· Score: 1
The problem where i live is that the local college radio station is the NPR node!
I am having a crisis week where I work. When I came in on Monday my HD failed to spin up. Which was pretty bad considering it wasn't backed up.
I guess its time to RAID my desktop and pray my FS doesn't crash, since backing it up really isn't an option considering the amount of space on it. I would need to spend 10x on a backup solution. Of course I do backup the 'critical' data onto the server and on zips.
When you call a member function in C++, you need to find the address first. This means an extra memory fetch.
I don't know what compiler your using but this is one of the big differences between a 'true' OO language like java and C++. In C++ all objects have a compile time defined type. This means that non virtual method calls in C++ are exactly The same as a C function call except that they have an extra parameter on the stack. This extra parameter isn't usually 'extra' because proper C code will be passing data specific structures as well. On the other hand C++ virtual methods will incur a memory reference to lookup the address of a method. This memory reference is going to be roughly equal to the memory reference generated by having function pointers in structures with C.
The moral of the story is that C programmers tend to avoid function pointers and C++ programmers don't because the language hides the implementation nastiness. On the other hand C programmers tend to end up with switch statements to decide which function needs to access the data. The performance equations tend to get nasty then depending on whether the address fetches end up in cache, or the branch prediction logic is failing to predict the correct path. Then there are the cases of old C programs ending up with really long switch statements causing serious performance impacts because the data can't just jump to the correct code path.
The real question is did the programmer care about performance and bloat when they were writing the code? I think this is the real question because in my experience straight C programmers are constantly worried about performance even in code that it doesn't really matter in, while C++ programmers are worried about development speed and maintainability.
Sounds like the 'SCSI' interface on my mustek scanner. It came with its own SCSI card and cable. When I plug it into my SCSI chain it causes my chain to die. I called them asking about termination issues with the scanner (since it doesn't have a termination switch) and they told me "you don't need to terminate the SCSI chain if you use our cable." I was like _WHAT?_ they said plug the card in and connect the scanner using the supplied cable. Turns out that really isn't the solution either because the scanner freaks out sometimes even with that solution. I managed to stabilize the mess with a dedicated ISA adaptec AHA1522 (from 1989 or something), and a nice pair of active terminators. Any other combination yields unstable performance. I thought the whole point of SCSI was so that I could connect multiple devices to the same chain.
Well its all find and dandy until someone ships broken devices. Lately I've been hearing similar issues with people who have USB hubs and a bunch of things chained together. The 'I plugged in the keyboard, game controller, mouse, scanner, DVC, and the machine boots really slowly and with the scanner plugged in the mouse jumps around' problems. Recently I heard of a USB CDRW that only worked on a dedicated USB card. I find the whole thing really sort of funny, except when i'm the one a friend calls up and asks to fix their computer.
The PIII Systems Programming guide has a section on thermal control for the P6 core as well. Read chapter 12: System Management 12.14 Thermal Monitoring. On the P6, software can directly control the duty cycle or a default behavior can be programmed in to take affect when the system goes over a certain temperature. The on demand clock modulation can be a lot worse than 50%, the values range from 12.5% to 87.5%... Oh, BTW this stuff is almost always controlled by the BIOS so running linux won't change its behavior.
in linux. It reads like a feature comparison against the major UNIX vendors and M$. If this all occurs within the next year or so, then linux truly will be enterprise ready. On the other hand if it takes 2x the time of the last release (linux release times seem to be doubling) then the commercial players will stay ahead of the game with the long list of features that are currently being implemented on the commercial platforms and are expected within the next 2 years. Things like logical and or physical partitioning, NUMA support, hotplug memory support the list goes on (some of these things exist on some platforms already.)
Since when did any new x86 revision have OS support when it shipped? The 286 protected mode? Nope took a couple years for OS support. The 386 paging and 32 bit extensions? Well that took almost 10 years. MMX, 3Dnow, and SSE those took a few months get app support. Its all about getting the product to market. The people who need the support will write hacks and applications to use it while the general public will have it in their machines for a couple years until the market penetration makes it ok for a big vender to ship default support in the OS.
If the world wanted a new ISA then the x86 would be dead. Someone would have killed it, be it the Sparc, PPC, MIPS, PARISC, alpha, arm, i960, etc. As it is, Intel momentarily forgot that the reason the x86 sells so well is the cost of creating a new ISA to gain 5% is minuscule compared to cost to port the existing software base. As long as x86 is 98% of the general purpose computer market and stays the price performance leader its pretty much hopeless for another processor except in the rare cases where someone needs the absolute fastest thing available. Motorola nuts have been saying since the 8086 the x86 had an old an outdated arch. So what! Where is the 680x0 today? Dead for high performance use. Where will the PPC be in 10 years? Probably the same place, relegated to the CPU people use in cell phones. IBM is its only real hope. They like the POWER cpu. Apple as a company is a flake. They would switch processors in a heart beat. They have done it twice already. Its probably time for another change. At least Apple understood with the last switch that software compatibility and UI is more important than hardware compatibility. AMD recognizes a significant weakness in the arch, same as Intel did when it was the 286. So they are going to capitalize on it. The CPU world is a funny place. AMD's x86-64 extensions may not take off but they sure will encourage Intel to make x86-64v2 just like 3Dnow did for SSE. Either that or Intel will be forced to include an extension invented by a clone company. Its like IBM and the PC all over again. Then again the whole thing depends on whether AMD can stay competitive with the P4 too.
But it seems to me making intelligent life in a computer is just a matter of finding a computer with a big enough case to get both yourself and your girlfriend into at the same time. These look like they might be big enough.
Thats a sunblade 1000, nice machine but its not $995 its $9,995! The sunblade 100 is just above it now in the price list. The sunblade 100 has a 500mhz UltraIIe which basically means the box is a piece of crap. I would buy a sb1000 today if the price were $995 for a box with a 900MHz UIII but as it is, I think a nice Duron will kick the living #$%# out of this sunblade 100. Part of the problem is it comes with assorted trash, like that smartcard reader! Damn it, dump the smartcard reader and give me a graphics adapter thats better than the one in my 486!
High memory loads, as in electrical loads. In other words lots of DIMM slots. Any machine with less than 4 DIMM slots probably doesn't need registered DIMMs.
Debugging is parallel if everyone is actually working on different bugs. In real life people are often working on different symptoms of the same bug. In the case of open source its even worse because no one really knows what everyone is doing, so you will have a bunch of people fixing the same problems. This means that you waste massive amounts of time.
BTW: Linux development is slowing because the system is getting as complicated as the commercial software solutions. The programmers who though "I'm better than everyone else, I don't have to follow these rules" are discovering that they aren't significantly better, they were just more ignorant about the real issues. Now they have a system that is rapidly becoming a mess because they have chosen goals other than maintainability. This is the beginning of failure. Maintainability, clear well defined behavior and algorithms are the beginning of all the other quality metrics.
Its not!!! That's my point MC and assembly are the same thing! Two different representations of the same thing. Define 'programming' in machine code and you will discover that I can argue that what you are really doing is programming in some symbolic representation of 'machine code'. '0x90' is no more machine code than 'nop' but we don't call it that. Think of an assembler more like a text to speech software rather than a babblefish like translator.
< RANT sorry... >
I understand that you can take the definition of compiler to include assemblers. Your argument about definitions changing is bogus. Rarely do we take a broad definition and use it to cover specific instances when we are trying to be specific. Sure definitions get broader. Name something that was part of the definition of an OS in 1980 that isn't currently part of at least one piece of software generally accepted to be an OS! Broad definitions often extend themselves. When I say "EPROM" I don't have to say "ROM EPROM" its assumed and understood that EPROM is a ROM. When I said memory 10 years ago, that meant DRAM, SRAM, assorted XXROM's. Today memory is all that it was in 1991 but we have additional descriptions like SDRAM, RDRAM, DDR, and assorted other 'new' things.
You have a valid point about jumping people for terminology, but why do we teach grammar? Its because having a standardized method for expressing something aids in understanding. It is far clearer to call it an 'assembler' than a 'assembler compiler' even though it might be correct by the definitions of a compiler. Which as other people pointed out is actually incorrect, an assembler is the 'compiler'. To be correct, in ones terminology it is really an 'assembly compiler'.
How about the nice Apple Cube that consumed 1/2 of my TV for about 2 seconds while watching the X-files (for the first time in months) last night? X-Files always had nice Ford adds but I guess I've just gotten picky. I can't watch TV anymore because commercials bug the hell out of me. Now the shows bug the hell out of me too. The show takes an hour of which 20 minuets are commercials, 5 minuets are in show commercials, 5 minuets of opening music I've seen 20 times, 10 minuets of lame special effects. What's left? So I stopped watching the X-Files last night after the second or third commercial. I just turned the TV off and went and messed around with the puter.
Anyway, support your local PBS station. At least they have decent news and interview hours
To add one more comment.. Yah, there were kids, in fact about a minute into the movie, where they show Verger buying the mask, this 4 or 5 Y/O about 2 isles down from me started crying quite loudly. His parents after trying to quiet him during more of the opening sequence finally ended up leaving.
A compiler takes something in language source and translates it into its equivalent in language target
This is precisely why its not appropriate to call an assembler a compiler. Its not technically a language translation. Its rather a symbolic conversion. The language is, for the most part, 1:1 between the human readable symbols and the machine readable symbols. Assuming x86, "NOP" is exactly 0x90 all the time and 0x90 is exactly NOP all the time. Early assemblers were simply advanced search and replace engines. Early compilers still had scan, parse, code generation, and in some cases an optimization pass. Sure you can construe an assembler into a compiler but its really a subset of a compiler because many of the compiler requirements aren't really needed with an assembler. If your going to call an assembler a compiler you might just as well call the disassembled dumps from your favorite debugger "decompiled code".
Calling an assembler a compiler is not acceptable for someone in the trade. Its acceptable for a layperson to not understand the differences just like it is acceptable for them not to completely understand the differences between flash, PROM, EPROM and RAM.
Now to support another view point. Using your definition of a compiler what is the difference between a compiler and a cross-compiler? There isn't any is there? Well then how do we distinguish the difference. What about java then, which is (as far as I'm aware there still isn't a true java machine that support the whole spec) always a cross compiler or maybe just a tokenizer. Maybe the whole thing has to do with language! You express and idea with the understanding the audience you are expressing it to understands the basic premises of your topic. Now on/. do you expect people to know what an assembler is? How about a compiler? Now why the heck call it an assembler compiler when you could just call it an assembler written in bash.
This is useful for small companies which are designing a system where a processors is an insignificant part of the hardware design. Just like in SW where you can use other peoples lib's these cores are designed to be a subset of a larger project which is implemented on an FPGA or actually fabed. Its nice to be able to focus on the unique design aspects of a project rather than buying a license from Intel, Motorola, Arm etc for a CPU core to embed. These cores for the most part aren't for joe linux user to play with. They can be a useful learning tool in an arch class in college or played around with to gain experience but their real value is to the two man engineering shops.
I've been playing lineage for about 6 months now. I can tell you Lineage inspires this kind of thing. I have been insanely angry at other players in the game enough at times, I probably would have beat the sh_t out of them if they had been across the room too.
I guess you have to play lineage to understand, I will try to explain. The game is damn addictive for some reason or another. I haven't spent this much time playing a game since warcraft II (multiplayer of course). The graphics suck and the sound is really repetitive, yet for a few months I found myself playing 6 to 8 hours a day. By the time your player hits L35 or so you have spent a lot of time wandering around and killing shit. The game gets gradually harder to level and it takes more and more money (a hard resource to come by in decent quantities) to buy armor and weapons that are good enough to do damage to the kind of monsters you are hunting. All that is great until some smart ass shows up and decides that you are a prime target for them to bully around. Sometimes its completely unprovoked and you just discover you have been jumped, sometimes a battle of words elevates to blows, or you get pulled into someone else's conflict because your in the same pledge. Once it comes to blows a P-P conflict goes one of two ways. Either you are more powerful and you kick their ass or they kick your ass. The result either way can be REALLY frustrating. If you win and end up killing them there is a good chance you will end up loosing a lot of lawfulness points and hence 'going chao'. This isn't bad in itself except now if your killed you drop stuff as well as loose exp. This means that you loose armor and weapons that might have taken you a month to get while you are trying to become lawful again. It doesn't matter how 'good' you have been. Killing someone is instant chao. Now the monsters are all aggressive towards you and you have other players who take it upon themselves to hunt in packs and kill chao players. Basically your life sucks until you manage to gain enough lawful points to stop attracting monsters, other players, and dropping your hard earned equipment. Being killed is often times just a better situation. That though has its own tribulations. As mentioned above if your not lawful enough you drop items when you die. Its like 'bamb' the last weeks worth of playing down the drain in the 5 seconds it takes to die. Not only that but you loose 10% to 15% of your current level (down leveling if necessary to loose that much). When your level 20 this isn't a real issue because you can make 15% in a half hour of playing. When your level 45 it can take 20 hours of play to make that much exp. So someone kills you and you drop your +6 Elven Plate Mail. Then your in the hole 400,000 adena (probably about 60 hours of play to make that much money if your L30) and another 20 hours of play to get the 15% exp back. Then the rage starts. WFT!, was that person thinking coming up and messing with me when I was just out here minding my own, hunting in Dragon valley. Then the rage really kicks in, I just spent the last 20 hours of my life to have this ass come along and mess it all up! There are very few options because the type of player that just killed you is now level 50 has a -50 AC , a +7 sword and 6 L30 dogs. Your only hope to exact revenge is to knuckle down, gain a few levels and then teach that SOB a lesson. On the other hand you could call upon your pledge to start a war with this other persons pledge. Now you have involved 20 of your friends in the fight along with 30 of the other guys friends. Which results in 30 new people in the game who are out to kick your ass when they see you out hunting and trying to gain a level. Ahhhhh! frustration!
NCsoft started a new server where you can't PK other players. Except that now there is absolutely no deterrent to keep people from hanging out on already over crowded orc beach and stealing your totems or the 50 other problems in the damn game. The problem is in the beginning the rewards are easy to come by. The game is fun and you quicly become addicted. Then its like bad drugs. It takes more and more effort to find the fun part (killing new monsters, getting a new level or some new spells, whatever) and the rewards are slowly overcome out by the anoyances of the game. This ends up leading to fustration when you want a new spell but you have to kill another 10,000 orcs to get enought money to buy it or you have to kill some outragious number of Ghast, Basi or whatever in the hopes that you will get lucky and have the item dropped for you. After four weeks killing ghast and you still don't have summon monster the frustration builds and builds and builds. Eventually you turn into a bully to burn off some steam, thereby frustrating some other lower level player who just had a few hours of work destoryed for your cheap thrill, or you quit the game. The end result is unhealthy for the game. The good people quit, the bad people stay around and bully the other players around.
CINT Dell PIII 1.0ghz-418base (not bad)
CINT Dell P4 1.7ghz-575base (oh, not looking so good)
CFP Dell PIII 1.0ghz-292base (really nice)
CFP Dell p4 1.7ghz-593base (nice)
Which is pretty decent. The integer performace is about what a decent RISC processor (not Sparc crap, the bottom of the performace heap) should get at the same clock rate, while the FP performance is quite stellar! Not bad, the stream looks pretty good too, I would expect more from a brand spanking new arch, but its not bad...
500, 1000? The basic engine doesn't really have that many moving parts. Lawnmower engines have maybe 5 to 15 moving parts. 1 Crank/flywheel, 1 piston, 1 rod, 1 cam, 2 valves, 1 choke, 1 throttle, 1 PC valve and 2 crank bearings. Rotary's, diesel, and 2 stroke engines have even fewer. The rotary does away with the piston/rods/valves and on a power/weight scales does considerably better than most electric engines and has a pretty flat power curve.
Scaling this up for a modern 4 cyl, You might have 1 crank/flywheel, 4 pistons, 4 rods, 1 cam, 8 valves, 1 oil pump, 4 injectors, 1 fuel rail regulator, 1 throttle, 1 PC, and assorted bearings. Crank angle sensor and electronic ignition does away with the distributor. Then there are maybe a half dozen non critical emissions related parts, EGR valve, cold start bypass valves, etc. Then there are assorted other things, water pump, temperature valve, alternator, and fuel pump. After removing things you would want but don't need like the power steering, air conditioner, power brakes, etc you probably only have around a 75 to 100 moving parts on the average engine. 50 of these 100 or so parts could be removed if needed or replaced with non moving systems. Then there is the ...
drivetrain
What I was getting at is your numbers are more likely (if a little low) for the whole automobile. Saying an electric automobile has 2 moving parts and a normal automobile 1000 is somewhat misleading. If pure electric vehicles ever take off then you will discover a bunch of 'extra' parts for air conditioning, brake boosters, or maybe even water cooled electric motors. Its hard to predict which way the drive trains will go, but it is definitly possible that they will be relativily complicated and not look anything like direct motor to wheel couplings. Modern hybrids are pretty complicated and don't really save that much in the way of complexity. Complexity and reliability are related but there are lots of engines that are complex with very high reliability numbers, car engines arn't reliable mostly because they don't need to be.
Where are the SPEC numbers? I still haven't seen any official numbers! IBM/Intel/etc don't have the Apple excuse that the benchmark doesn't support non UNIX like OS's! So, why haven't any number been published? Is the Fortran compiler that much of a piece of crap, or does the chip just do very poorly? Along these lines where are the OS-X based spec numbers or is this another case of Apple not wanting to publish bad numbers for a benchmark designed to create an even playing field for diffrent arch,OS combinations?
The concept of hooking an instruction translator to a RISC core wasn't just a NexGen idea. The concept was well into development. The original AMD K5 was going to be an x86 front-end to an updated AMD29000 arch. Everyone, except Cyrix, had shown that their designs for their next generation processors were going to be designed this way. The whole concept is really just a nice name for opcode to microop decoding in hardware, which was the original design point for CISC processors. A decoder sitting in front of a microop engine. RISC processors on the other hand were just suppose to export the 'microop' engine to software and let it solve all the nasty problems.
As far as NexGen's failures, these have been traditionally due to the mistake that nexgen decided to come out with a proprietary bus and processor interface. Everyone else at the time was sticking to designs that allowed them to be plugin compatible with intel processors. You could just pull out your intel 8086,286,386 or 486 processor/crystal and replace it with a clone processor from the same family. Then nexgen comes along with a processor that ran 33% better at the same clock rate than the Pentium but required a new motherboard that was incompatible with the rest of the market. This is effectively what killed them at the time. Everyone else just had to worry about working with the intel standard interface, once they did that, it opened up a huge market of 3rd party chipsets they could use. Nexgen had to design and produce in volume not only the processor but the motherboard. This was a big hurtle for them. So when AMD kept having problems with their K5 and it looked like they weren't going to have a product to compete with everyone else's, they bought the NexGen development team, massaged the NexGen 586 into the K5 which was compatible with the standard 486! (I seem to remember) socket and lost a whole crap load of performance doing it. It bought them the time to bring the K6 to market though.
Oh, and that game of catchup to Intel? Well that was caused by the huge lawsuit between Intel and AMD that dragged on for years. Intel didn't directly get what they wanted (which if I remember right was a complete halt of AMD x86 processor production) but they did slow AMD way down. AMD went from the company that was messing up Intel's processor speed releases to the company that was always playing catch-up. Ah, the fond memories of my AMD 286-20 kicking the crap out of a friends Intel 386DX-12 (or maybe it was a DX-16).
Basic CPU design is actually a lot easier than c-like compilers. I re-implemented, from scratch, an 8-bit design presented in a comp-arch class in about 6 hours of development. Another 2 and I had it pipelined and the simulations were running at about 4x the original design spec. Welcome to the world of modern HDL's. My estimated transistor count wasn't much larger than the original either, although it was large enough that if I were actually in the original designers shoes I would have had to do some serious work to trim it down.
The idea of 'plug-ins' for file systems isn't new. Its new to Linux, because Linux has a very messy driver model, due to Linus's early insistence on monolithic kernels. Lots of other OS's support this idea, most are designed from the start to support this. The evil NT/2k from M$ has the ability to add 'filter' drivers to all the devices in the system. The result is that in NT/2k you can write your encryption/compression filter and it will just work on top of any file system running on the OS.
The problem where i live is that the local college radio station is the NPR node!
I am having a crisis week where I work. When I came in on Monday my HD failed to spin up. Which was pretty bad considering it wasn't backed up.
I guess its time to RAID my desktop and pray my FS doesn't crash, since backing it up really isn't an option considering the amount of space on it. I would need to spend 10x on a backup solution. Of course I do backup the 'critical' data onto the server and on zips.
I don't know what compiler your using but this is one of the big differences between a 'true' OO language like java and C++. In C++ all objects have a compile time defined type. This means that non virtual method calls in C++ are exactly The same as a C function call except that they have an extra parameter on the stack. This extra parameter isn't usually 'extra' because proper C code will be passing data specific structures as well. On the other hand C++ virtual methods will incur a memory reference to lookup the address of a method. This memory reference is going to be roughly equal to the memory reference generated by having function pointers in structures with C.
The moral of the story is that C programmers tend to avoid function pointers and C++ programmers don't because the language hides the implementation nastiness. On the other hand C programmers tend to end up with switch statements to decide which function needs to access the data. The performance equations tend to get nasty then depending on whether the address fetches end up in cache, or the branch prediction logic is failing to predict the correct path. Then there are the cases of old C programs ending up with really long switch statements causing serious performance impacts because the data can't just jump to the correct code path.
The real question is did the programmer care about performance and bloat when they were writing the code? I think this is the real question because in my experience straight C programmers are constantly worried about performance even in code that it doesn't really matter in, while C++ programmers are worried about development speed and maintainability.
Sounds like the 'SCSI' interface on my mustek scanner. It came with its own SCSI card and cable. When I plug it into my SCSI chain it causes my chain to die. I called them asking about termination issues with the scanner (since it doesn't have a termination switch) and they told me "you don't need to terminate the SCSI chain if you use our cable." I was like _WHAT?_ they said plug the card in and connect the scanner using the supplied cable. Turns out that really isn't the solution either because the scanner freaks out sometimes even with that solution. I managed to stabilize the mess with a dedicated ISA adaptec AHA1522 (from 1989 or something), and a nice pair of active terminators. Any other combination yields unstable performance. I thought the whole point of SCSI was so that I could connect multiple devices to the same chain.
Well its all find and dandy until someone ships broken devices. Lately I've been hearing similar issues with people who have USB hubs and a bunch of things chained together. The 'I plugged in the keyboard, game controller, mouse, scanner, DVC, and the machine boots really slowly and with the scanner plugged in the mouse jumps around' problems. Recently I heard of a USB CDRW that only worked on a dedicated USB card. I find the whole thing really sort of funny, except when i'm the one a friend calls up and asks to fix their computer.
The PIII Systems Programming guide has a section on thermal control for the P6 core as well. Read chapter 12: System Management 12.14 Thermal Monitoring. On the P6, software can directly control the duty cycle or a default behavior can be programmed in to take affect when the system goes over a certain temperature. The on demand clock modulation can be a lot worse than 50%, the values range from 12.5% to 87.5%... Oh, BTW this stuff is almost always controlled by the BIOS so running linux won't change its behavior.
in linux. It reads like a feature comparison against the major UNIX vendors and M$. If this all occurs within the next year or so, then linux truly will be enterprise ready. On the other hand if it takes 2x the time of the last release (linux release times seem to be doubling) then the commercial players will stay ahead of the game with the long list of features that are currently being implemented on the commercial platforms and are expected within the next 2 years. Things like logical and or physical partitioning, NUMA support, hotplug memory support the list goes on (some of these things exist on some platforms already.)
Since when did any new x86 revision have OS support when it shipped? The 286 protected mode? Nope took a couple years for OS support. The 386 paging and 32 bit extensions? Well that took almost 10 years. MMX, 3Dnow, and SSE those took a few months get app support. Its all about getting the product to market. The people who need the support will write hacks and applications to use it while the general public will have it in their machines for a couple years until the market penetration makes it ok for a big vender to ship default support in the OS.
If the world wanted a new ISA then the x86 would be dead. Someone would have killed it, be it the Sparc, PPC, MIPS, PARISC, alpha, arm, i960, etc. As it is, Intel momentarily forgot that the reason the x86 sells so well is the cost of creating a new ISA to gain 5% is minuscule compared to cost to port the existing software base. As long as x86 is 98% of the general purpose computer market and stays the price performance leader its pretty much hopeless for another processor except in the rare cases where someone needs the absolute fastest thing available. Motorola nuts have been saying since the 8086 the x86 had an old an outdated arch. So what! Where is the 680x0 today? Dead for high performance use. Where will the PPC be in 10 years? Probably the same place, relegated to the CPU people use in cell phones. IBM is its only real hope. They like the POWER cpu. Apple as a company is a flake. They would switch processors in a heart beat. They have done it twice already. Its probably time for another change. At least Apple understood with the last switch that software compatibility and UI is more important than hardware compatibility.
AMD recognizes a significant weakness in the arch, same as Intel did when it was the 286. So they are going to capitalize on it. The CPU world is a funny place. AMD's x86-64 extensions may not take off but they sure will encourage Intel to make x86-64v2 just like 3Dnow did for SSE. Either that or Intel will be forced to include an extension invented by a clone company. Its like IBM and the PC all over again. Then again the whole thing depends on whether AMD can stay competitive with the P4 too.
But it seems to me making intelligent life in a computer is just a matter of finding a computer with a big enough case to get both yourself and your girlfriend into at the same time. These look like they might be big enough.
I thought half the fun of model trains was the incredibly complicated wiring diagrams! This does away with the whole problem. How depressing!
Thats a sunblade 1000, nice machine but its not $995 its $9,995! The sunblade 100 is just above it now in the price list. The sunblade 100 has a 500mhz UltraIIe which basically means the box is a piece of crap. I would buy a sb1000 today if the price were $995 for a box with a 900MHz UIII but as it is, I think a nice Duron will kick the living #$%# out of this sunblade 100. Part of the problem is it comes with assorted trash, like that smartcard reader! Damn it, dump the smartcard reader and give me a graphics adapter thats better than the one in my 486!
High memory loads, as in electrical loads. In other words lots of DIMM slots. Any machine with less than 4 DIMM slots probably doesn't need registered DIMMs.
Debugging is parallel if everyone is actually working on different bugs. In real life people are often working on different symptoms of the same bug. In the case of open source its even worse because no one really knows what everyone is doing, so you will have a bunch of people fixing the same problems. This means that you waste massive amounts of time.
BTW: Linux development is slowing because the system is getting as complicated as the commercial software solutions. The programmers who though "I'm better than everyone else, I don't have to follow these rules" are discovering that they aren't significantly better, they were just more ignorant about the real issues. Now they have a system that is rapidly becoming a mess because they have chosen goals other than maintainability. This is the beginning of failure. Maintainability, clear well defined behavior and algorithms are the beginning of all the other quality metrics.
I guess I have to reply..
/RANT >
Machine code is another language
Its not!!! That's my point MC and assembly are the same thing! Two different representations of the same thing. Define 'programming' in machine code and you will discover that I can argue that what you are really doing is programming in some symbolic representation of 'machine code'. '0x90' is no more machine code than 'nop' but we don't call it that. Think of an assembler more like a text to speech software rather than a babblefish like translator.
< RANT sorry... >
I understand that you can take the definition of compiler to include assemblers. Your argument about definitions changing is bogus. Rarely do we take a broad definition and use it to cover specific instances when we are trying to be specific. Sure definitions get broader. Name something that was part of the definition of an OS in 1980 that isn't currently part of at least one piece of software generally accepted to be an OS! Broad definitions often extend themselves. When I say "EPROM" I don't have to say "ROM EPROM" its assumed and understood that EPROM is a ROM. When I said memory 10 years ago, that meant DRAM, SRAM, assorted XXROM's. Today memory is all that it was in 1991 but we have additional descriptions like SDRAM, RDRAM, DDR, and assorted other 'new' things.
You have a valid point about jumping people for terminology, but why do we teach grammar? Its because having a standardized method for expressing something aids in understanding. It is far clearer to call it an 'assembler' than a 'assembler compiler' even though it might be correct by the definitions of a compiler. Which as other people pointed out is actually incorrect, an assembler is the 'compiler'. To be correct, in ones terminology it is really an 'assembly compiler'.
<
How about the nice Apple Cube that consumed 1/2 of my TV for about 2 seconds while watching the X-files (for the first time in months) last night? X-Files always had nice Ford adds but I guess I've just gotten picky. I can't watch TV anymore because commercials bug the hell out of me. Now the shows bug the hell out of me too. The show takes an hour of which 20 minuets are commercials, 5 minuets are in show commercials, 5 minuets of opening music I've seen 20 times, 10 minuets of lame special effects. What's left? So I stopped watching the X-Files last night after the second or third commercial. I just turned the TV off and went and messed around with the puter.
Anyway, support your local PBS station. At least they have decent news and interview hours
To add one more comment.. Yah, there were kids, in fact about a minute into the movie, where they show Verger buying the mask, this 4 or 5 Y/O about 2 isles down from me started crying quite loudly. His parents after trying to quiet him during more of the opening sequence finally ended up leaving.
A compiler takes something in language source and translates it into its equivalent in language target
/. do you expect people to know what an assembler is? How about a compiler? Now why the heck call it an assembler compiler when you could just call it an assembler written in bash.
This is precisely why its not appropriate to call an assembler a compiler. Its not technically a language translation. Its rather a symbolic conversion. The language is, for the most part, 1:1 between the human readable symbols and the machine readable symbols. Assuming x86, "NOP" is exactly 0x90 all the time and 0x90 is exactly NOP all the time. Early assemblers were simply advanced search and replace engines. Early compilers still had scan, parse, code generation, and in some cases an optimization pass. Sure you can construe an assembler into a compiler but its really a subset of a compiler because many of the compiler requirements aren't really needed with an assembler. If your going to call an assembler a compiler you might just as well call the disassembled dumps from your favorite debugger "decompiled code".
Calling an assembler a compiler is not acceptable for someone in the trade. Its acceptable for a layperson to not understand the differences just like it is acceptable for them not to completely understand the differences between flash, PROM, EPROM and RAM.
Now to support another view point. Using your definition of a compiler what is the difference between a compiler and a cross-compiler? There isn't any is there? Well then how do we distinguish the difference. What about java then, which is (as far as I'm aware there still isn't a true java machine that support the whole spec) always a cross compiler or maybe just a tokenizer. Maybe the whole thing has to do with language! You express and idea with the understanding the audience you are expressing it to understands the basic premises of your topic. Now on
This is useful for small companies which are designing a system where a processors is an insignificant part of the hardware design. Just like in SW where you can use other peoples lib's these cores are designed to be a subset of a larger project which is implemented on an FPGA or actually fabed. Its nice to be able to focus on the unique design aspects of a project rather than buying a license from Intel, Motorola, Arm etc for a CPU core to embed. These cores for the most part aren't for joe linux user to play with. They can be a useful learning tool in an arch class in college or played around with to gain experience but their real value is to the two man engineering shops.