TMP8 Microprocessor Feb 2024
The TMP8 is a complete computer system central processing unit which may be interfaced with memory having capacity of 16 Bytes. The processor communicates over 8-Bit data and 4-Bit Address Bus. The CPU contains an 8-Bit parallel arithmetic unit, a dynamic RAM (three 8-Bit multipurpose data registers), and a complete memory driven instruction decoding and control logic unit.
Features
8-Bit Parallel Microprocessor
15 Instructions (ISA)
Directly Addresses 16 Byte Memory (16 x 8) Bits (4-Bit Address Bus)
Have 3x Multipurpose Registers
Opensource ISA
Introduction
The TMP8 is an 8-bit parallel central processor unit a temporary and early development design for implementation of RISA-MPD(Reprogrammable Instruction Set Architecture for Microprocessing Devices).
The processor communicates over an 8-bit Data bus and a 4-bit Address bus. Since Processor is in early development stage it doesn"t have any external control lines for memory addressing but fully ISA driven design for memory management, 8-Bit Data can be transmitted between the CPU and external Memory between 0x0 to 0xF Address possibility.
This Architecture contains a total of four (4) 8-Bit Multipurpose Registers, an Instruction Register, three (3) General Purpose Registers named as X, Y and Z. Here Register-X is accumulator, Register-Z is output latch Register and Register-Y is for Register to Memory data communicator, an 8-Bit Binary Counter for addressing Memory through Memory Address Register (MAR).
The control portion of the architecture use programmed (Flashed) ISA to implement variety of register transfer, memory transfer, basic arithmetic control. All the instructions are coded in one byte (8 bits); Presently Immediate data load, RAM Reverse transfer is unavailable.
Input and Output are in binary format and not encoded or decoded on input or output operations.
The Instruction set of the TMP8 consists of 16 instructions including data manipulation, basic binary arithmetic, and jump
The normal program flow of TMP8 may be paused (HALT) using external inputs and Resettable using external inputs.
Basic Functional Blocks
The four basic functional blocks of TMP8 processor are the Registers, Arithmetic logic unit, Memory, Instruction Set Architecture (Control Unit).
Registers
TMP8 have 2 types of registers MP-Registers (Multipurpose Registers) and Instruction Register. MP-Registers: - There are total three (3) MP-Registers X, Y and Z; Here Register X is accumulator, Register Y is memory communicator and Register Z is output latch, since those registers X, Y and Z can also be used for General Purpose operations they are Multipurpose registers.
Instruction Register: - Instructions are fetched from memory, stored in the instruction register, and decoded for control of ALU, Memories or Data transfers, It also responsible for dividing instruction into opcode and operand (generally address for transfer functions).
ALU (Arithmetic Logic Unit)
All arithmetic operations are ADDITION and SUBTRACTION are carried out in the 8-bit parallel arithmetic unit. Two temporary register “X” and register “Y” are used to store the accumulator and next followed byte for ALU operations. After any arithmetic operation the respective result override the register-X data.
Control Unit
The Control Unit consists of Instruction Register, Instruction Decoder and Instruction Set, all three main components made TMP8 to execute instructions on its own.
1. Instruction Register: Stores 8-bit instruction in it fetched from ROM or RAM (DFT) specific.
2. Instruction Decoder: Accepts the incoming instruction form instructions register split it into opcode (Main instruction) and operand (additional address to be changed) and generates an address of 8-bit by decoding, that specific instruction is now ready to be execute.
3. Instruction Set: Accepts the Instruction address from instruction decoder and fetch the data (16-Bit Data line) from main instruction firmware memory for that instruction and control the inputs and outputs control of different components.
For more detailed explaination refer to TMP8 Datasheet