Previous
Next
Table of Contents
Early in the development of the F-CPU architecture, some hard technical
choices were made. It is likely that the F-CPU architecture will have the following
features:
- 64-bit internal data paths (i.e. this is a 64-bit architecture).
- Standard Von Neumann CPU<->memory architecture.
- 64-bit address space.
- Virtual memory support.
- Kernel and user operating modes.
- Co-processor support (FP, Graphics, etc...) on a separate (internal) bus.
- Designed for Y2K-current process technologies (0.25 micron or smaller).
Some other architectural choices are being dictated by the desire to innovate
and improve upon current CPU architecture design practices. These choices are
more questionable compared to the hard choices listed in the previous subsection,
and yet once a consensus is reached over these choices, the F-CPU architecture
will be in many ways determined. At we write these lines, these firm choices
are:
- A memory-to-memory (m2m) / RISC mixed architecture (this is explained below).
- Both big-endian and little-endian modes supported (H&P pages 73 and
C-12).
- Memory windows with 32 user-visible virtual registers. The number of memory
windows is implementation dependent, with a minimum of 2 windows. These memory
windows can be thought of as virtual register banks. They are used to accelerate
context switching (they are not used to accelerate procedure calls, as are
register windows in the SPARC architecture).
- Three operand instructions, as per standard RISC practice.
- A 32-bit fixed length instruction format, also as per standard RISC practice.
- Separate I/O, coprocessor and memory addressing spaces. The I/O and coprocessor
addressing spaces (16 bits each) only allow Moves. The I/O addressing space
is protected (only accessible in supervisor mode). The coprocessor addressing
space is user-visible.
- N-stage pipelined operation, where n is implementation dependent.
- Hardware integer multiply and divide.
- FP coprocessor implemented as coprocessor mapped Transport Triggered Architecture
(TTA) logic (the presence of an FPU is implementation dependent).
- Block Move coprocessor also implemented as coprocessor mapped TTA logic
(the presence of a Block Move coprocessor is implementation dependent).
- No condition codes, a la MIPS.
- Immediate operands are limited to 16-bit size (due to the fixed 32-bit
instruction length).
- CPU Control Registers (CCRs) are mapped in the first half (32KB range)
of the coprocessor address space.
Many ideas are still floating around on the various Freedom Project mailing
lists.
Previous
Next
Table of Contents