??? 03/03/05 14:29 Read: times Msg Score: +1 +1 Informative |
#88980 - Hanging a bag on the 8051 will fail... Responding to: ???'s previous message |
Hanging more bags of crap (High-order byte registers, extended stack pointers, more data pointers, and so on) on the 8051 does not address the real issues. Doing these things actually requires MORE instructions for your programs than a standard 8051 does. Yes, it may help in a small percent of programs. But what does that gain you if the majority of 8051 programs get bigger and run slower? This really means that you'll require a faster part with more memory just to do stuff at the same speed as a standard 8051.
To take advantages of these features, compiler vendors must integrate some form of support into the toolchain. There are already more than 600 8051-compatible devices. At this time, there are over 12 different implementations of dual data pointers. (Over 12??? Why?) This means that if a compiler CLAIMS to support dual data pointers, you have to ask, Does it Really? (Yes, Keil does. And it's a maintenance nightmare.) If vendors start extending the registers of the 8051, how many versions of that feature are there going to be? Most of the suggestions I've read in this thread have been already figured out by a large group of 8051 developers and tool vendors and integrated into the Intel 251. The 251 is pin-compatible with an 8051, binary and source code compatible, plus it has extra instructions for accessing 16-bit and 32-bit registers, 16 and 32-bit arithmetic, 16 and 32-bit addressing, and so on. The Harvard architecture is abandoned in support von Neumann. You have REAL far pointers (that require no compiler voodoo to achieve). The maximum stack size is 64K and the memory architecture supports 16M. The list goes on and on. To give you an idea of the performance benefits from same clock speed 8051 to 251 you'll get a 16x improvement in 32-bit multiply and 40x improvement in 32-bit divide. Both of those figures are way better than what has been done with a MAC or math accelerator on the 8051. The reason is because the 251 supports REAL 32-bit registers. The 8051 must load the MAC register 1 byte at a time (that's 12 movs before you get to the multiplying or dividing part). The only way an 8051 MAC could beat the 251 is if the MAC was also a 12-instruction time machine. There are already several compiler companies, Keil, Tasking, and IAR, who have pretty good compilers ALREADY AVAILABLE for the 251. Currently, only Intel and Atmel make 251 parts, which is a shame. There are several companies (SANYO, Dolphin, and one other I can't remember) who have 251 IP cores. Maybe we'll see more 251 chip vendors in the near future. My point in all of this is that a solution to the problem already exists. So, why reinvent the wheel? The 8051 does a great job for what it was intended. I'm sure that the guys at Intel who created the 8051 never anticipated that it would still be around 25 years later. Jon |