Then, I will dive in to the different aspects of the CPU. My emulator will start from a very small and simple virtual machine made of CPU, ROM and RAM.
I would like to start writing a small test virtual machine made of a basic 68k, and expand it little by little.
The Motorola 68000 (shortened to 68k) is a 16/32-bit microprocessor that marked a revolution in micro processor design in the 1980s and beyond. Here's a detailed overview of its features and capabilities:
- CISC: The 68k is a CISC (Complex Instruction Set Computing) processor, with a rich and varied instruction set that allows for complex operations, ideal for the operating systems of the time that were not optimized for RISC (Reduced Instruction Set Computing) processors.
- 32-bit Architecture: Although it communicated externally on a 16-bit data bus, it was internally a 32-bit processor. This means it could utilize 32-bit operations and numbers, allowing for the computation of large amounts of data and much larger addresses, though the narrower data bus required more cycles to complete operations.
- General-Purpose Registers: The 68k featured eight data registers (D0-D7) and seven address registers (A0-A6) for general-purpose operations, all 32-bit. The A7 register was used as the stack pointer.
- Pipeline Fetch-Execute: It had a simple two-stage pipeline, one for fetching and one for executing the instruction. This was a relatively simple design, but it still allowed a degree of overlap between fetch and execute operations, improving overall performance.
- Flat Addressing Space: The 68k could address up to 16 MB of memory in a flat address space, meaning that the program and data resided in the same address space (unlike segmented architectures like that used by the Intel 8086).
- Support for Virtual Memory: Although the base 68000 did not have hardware support for virtual memory, later versions in the 68k series added this support, which was essential for modern operating systems.
- High-Level Instructions: The instruction set included a variety of high-level operations, including mathematical operations, array management, and bit manipulation, as well as powerful flow control instructions.
- Flexible Addressing Modes: The 68k supported several addressing modes, allowing programmers to access memory in various ways, thus optimizing memory and code usage.
The 68k handled a wide range of hardware interrupts and exceptions, supporting preemptive multitasking and improving system robustness, essential for operating systems like those used in Macintosh and Amiga computers.
Overall, the Motorola 68000 was known for its balance between power and flexibility. It was relatively easy to program, thanks to its high-level instruction set and its various addressing modes, making it popular among programmers of the time. It laid the groundwork for future generations of processors, influencing system and application design for decades.
What worries me is the development of the CISC tecnology for the instruction parser. It can turn into a nightmare because the emulation of the CPU must be fast.
Anyway, all these information will be useful for the implementation of the emulator, but I need some more information on the CPU.
0 Comments:
Post a Comment