The 6502EX is a 32bit extension of the popular 6502 8bit processor. 6502EX source code is available under GNU GPL license.
It has been conceived to offer a solution functionally and timing backward compatible with the original 6502 but, at the same time, it adds features today mandatory for modern applications and high level programming. It can be efficiently used both in 8bit and 32bit systems providing a low cost solution alternatively to entry level RISC cores.
The 6502EX has been designed to give a continuity path to the glorious 6502, bridging the 8bit and 32bit system gap without compromises and providing an easy way to migrate toward 32bit systems preserving the previous hardware and software investment.
The 6502EX is not a pure 32bit RISC implementation with the property to emulate the 6502 instruction set, at the same time, it is not a 32bit scaling up of the original 6502 memory/accumulator architecture. The 6502EX is a standard 6502 core augmented with features aimed to remove memory bottleneck introduced by pure memory/accumulator architecture and it offers the possibility to work on 32bit data, largely improving computational capability. It preserves the original 6502 instruction set allowing the user to mix new opcodes and legacy op-codes providing a seamless integration of the original programming model and the new one. So, compliancy with legacy 6502 code is intrinsic in the6502EX architecture and does not require any emulation or specific operative mode to be activated.
The 6502EX extends the addressable memory space to 4Gbyte and performs vectored 32bit data operations both in low cost 8bit systems and high performance 32bit systems. Even if some deviations from the original architecture have been introduced to remove 6502 limitations, the 6502EX conserves the same design philosophy, the simplicity of usage and the same architecture efficiency of the original 6502. It offers a set of nineteen 32bit registers and a 32bit system registers space where an optional MMU, Cache, FPU or application specific coprocessors can be connected to. It adds 55 opcodes to the standard 6502 instruction set giving the possibility to mix legacy opcodes and new opcodes, executing 6502 legacy code in a cycle exact manner. Basically, the new opcodes cover three categories of instructions: 8/16/32bit load-store, 8/16/32bit logic/arithmetic operations and 32bit miscellaneous instructions.
In the picture below is reported the programming model of the 6502EX.
Thanks to a vectored 32bit ALU, the 6502EX can execute four 8bit data operations in parallel, two 16bit data operations in parallel or a single 32bit data operation. The 32bit ALU can be seen as four 8bit elementary ALUs with their own set of flags (carry, negative, overflow and zero bit) stored into the status register. The 6502 legacy set of flags are preserved into the status register as well. The 6502EX can takes conditional program branches upon specific values of each set of flags.
The following figure shows a concept scheme of the vectored ALU.
The 6502EX core can be used in legacy 6502 8bit system, replacing the original 6502 processor and assuring binary code and timing backward compatibility. It can be used also in low cost 8bit system to expand the memory system and to take benefit of the new opcodes but the best benefits are allowed by using the 6502EX core in real 32bit systems achieving unprecedented level of code density and excellent performance. In this case 8bit, 16bit and 32bit memory load/store and data operations are allowed, giving a gain of up to 4x in term of data access bandwidth and computation capability.
As already mentioned, the 6502EX has been designed to give a continuity path to the famous 6502. It wants to address many kind of industrial applications like low-cost 8bit embedded system and high performance 32bit embedded systems as well as low-power systems (like biomedical implantable device), consumer applications and many kind of home-made designs. The 6502EX core in fact can be hosted into FPGA devices and used by 6502-based designers or by users of vintage home computers that want to improve their systems. Have a look to www.6502.org to find the most complete collection of documents, information and projects regarding the 6502.
Hereafter some pictures representing these kinds of systems.
It’s interesting to remind that the HP35S calculator, reported in Fig.4, it’s one of the most recent handheld calculator designed by HP (2007) and it mounts just a 6502 based MCU (from Sunplus) clocked at few Mhz.
In order to understand the efficiency of the original 6502 architecture and to understand the reasons why we decided to provide a “second step” to this core, we like to remind how the 6502 is born and in which systems it has been used in the past. Following this address http://www.commodore.ca/history/company/mos/mos_technology.htm you can read how this processor has been invented by MOS Technology thanks to Check Peddle and Bill Mensch. Bill Mensch is today CEO of Western Digital Center, a Company providing a 6502 compatible core (65C02S) and its 16bit derivative, the 65C816S.
The 6502 was really successful in the 70s-80s, it was used into the most important computers of that era. To have a better idea about the success of this core we invite you to visit the following link http://www.enotes.com/topic/List_of_home_computers_by_category#MOS_Technology_6502. It’s unbelievable to see the big number of computers, home computers and gaming console that toke benefit from this processor. All of you will recognize the famous Apple II, the Commodore 64, the Atari 400xl but also the Acorn BBC, the Rockwell Aim65 and the Nintendo NES gaming console.
The reason why the 6502 was a so successful processor in the industry is probable due to its intrinsic architecture efficiency and the semplicity of usage. For whom interested to know more about the efficiency of this core and comparison with respect to other cores of the same era, please visit http://www.westerndesigncenter.com/wdc/AN001_%20Instruction_Level_Performance_Comparisons.cfm
The efficiency and simplicity of the 6502 core was so high that ARM Ltd, today leader in embedded RISC processors, was inspired just from the 6502 architecture when in the 1983 decided to design its first core, the ARM1. At that time the name of the Company was Acorn Computer, a famous home computer manufacturer, initially based on the 6502 processor, who sold successful machines like the BBC and the Archimede. Acorn had the problem to design the BBC successor using a more powerful processor but, after investigating about the performances offered by commercial cores available on the market (68xxx, x86 and similar), it decided to go for a proprietary solution able to significantly improve the efficiency of the 6502. Archimede was the first machine using the new ARM core. To know more about ARM history visit http://www.ot1.com/arm/armchap1.html.
For additional information regarding the 6502EX core, please visit the Architecture and Technical Requirements pages on this site.
If you are interested to know more about 6502EX availability, please send an email to 6502ex [at] gmail [dot] com. We will be pleased to answer to your enquires.
The information reported on this page is proprietary of the author of this site, all right reserved.
This page contains proprietary information that may be only used by persons in accordance to authorization under and to the extent permitted by the author of this site.
Information reported on this page is subject to change without notice according to continuous 6502EX development and improvements. All 6502EX details and 6502EX usage described in this page are given by the author in a good faith.
The author shall not be liable for any loss or damage deriving from the incorrect use of information contained in this page, or any error or omission in such information, or any incorrect use of the 6502EX.
Trademarks and pictures reported in this page are the exclusive property of their respective owners.