Skip to the content.

Introduction

NeoCore is a compact CPU architecture designed to balance simplicity and functionality. It combines a 16-bit data path with 32-bit addressing, offering insights into modern memory management while retaining the efficiency of a reduced instruction set. The project serves as a practical platform for studying CPU design, assembly programming, and systems programming concepts.

GitHub forks GitHub stars License GitHub last commit

Core Architecture

Key Features

Memory Management

NeoCore employs a two-step approach to address 32-bit memory spaces. By stacking two 16-bit values, the architecture maintains a clean instruction set while enabling access to up to 4GB of memory:

PSH 1        ; Push high 16 bits
PSH 2        ; Push low 16 bits
RLD 3        ; Load from combined 32-bit address into R3

The 4KB page size aligns with typical cache systems, offering a practical balance between memory granularity and performance.

Instruction Set Architecture

The instruction set adheres to RISC principles, with all instructions standardized to 16 bits for simplicity and consistency.

Registers

Input/Output System

The memory-mapped I/O system is designed for flexibility. Current implementations include:

Software Development Tools

Assembler

The NeoCore assembler supports:

Emulator

The emulator provides:

Educational Applications

NeoCore offers a hands-on introduction to key systems programming concepts:

By interacting with NeoCore, learners can deepen their understanding of both theoretical and practical aspects of computer architecture.

Future Developments

Planned updates include:

Technical Specifications

Memory

Interrupts

Clock and Timing

License and Disclaimer

NeoCore is released under the GNU General Public License v3.0 (GPL-3.0). The project is provided “as is,” without any warranty of any kind, either expressed or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, or non-infringement. Users assume all risks associated with its use. For full license details, refer to the accompanying LICENSE file.


Contributions and feedback are welcome. For more details, refer to the project repository.