The Prototype of Modern Computers – Microcomputer MCS-4

The Prototype of Modern Computers - Microcomputer MCS-4

Previously, we introduced What Did Intel’s First CPU Look Like? Introduction to Intel’s 4-Bit CPU, with a CPU configured like today’s desktop computers, other components like motherboards and memory are necessary to build a complete system. Of course, for the Intel 4004, these are also essential. Below, we will introduce the prototype of modern computers – the microcomputer MCS-4 (based on Intel 4004).

Old CPU Revelation –MicrocomputerMCS-4

The Prototype of Modern Computers - Microcomputer MCS-4

Busicom 141-PF *Printing Calculator

The above isBusicom 141-PF *Printing Calculator (a microcomputer composed of a set of four chips, calledMCS-4. It includes a Central Processing Unit (CPU) chip – 4004, a Read-Only Memory (ROM) chip for custom applications, a Random Access Memory (RAM) chip for data processing, and a register chip for shift storage – Input/Output (I/O) ports.), after reverse engineering by foreign experts, the schematic diagram was obtained, as shown below:
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
Reverse-engineered calculator
MCS-4 can only minimally operate on4001 ROM and 4004 CPU (minimum system), but its design can run normally in RAM and shift registers. Additionally, the two chips 4008 and 4009 expanded the system, allowing it to work with any existing memory chip selection from Intel.

Part

Description

4001

Read-Only Memory

4002

Memory

4003

Shift Register

4004

Main Control Board

4008

Address Latch

4009

I/O Interface

4001 (ROM)

4001 is a 256×8 bit mask programmable ROM and 4-bit I/O port
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
4001 is a 2048-bit metal mask programmable ROM that provides custom microprogram display functionality for the MCS-4 microcomputer.

4002 (RAM)

320-bit RAM and 4-bit output port
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
4002 performs two functions. As RAM, it stores 320 bits in 4 registers, each containing 24 four-bit characters (16 main memory characters and 4 status characters). As a medium for communication with peripheral devices, it has 4 output lines and corresponding control logic to perform outputs.

4003 (SR)

10-bit serial in/parallel out shift register (SR)
The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
4003 is a 10-bit static shift register with serial input, parallel and serial output data, its function is to increase the number of output lines, interfacing with I/O devices such as keyboards, displays, printers, teletypes, switches, card readers, and A-D converters. WeChat: OpenFPGA

4004 (CPU)

What Did Intel’s First CPU Look Like? Introduction to Intel’s 4-Bit CPU

The Prototype of Modern Computers - Microcomputer MCS-4

Instruction Execution Cycle

The Prototype of Modern Computers - Microcomputer MCS-4
The Prototype of Modern Computers - Microcomputer MCS-4
The detailed functional specifications describe the operation of the system, instruction set, CPU activities for each instruction, and some programming and hardware examples. These detailed functional specifications are published separately and available upon request.
Below is a brief overview of the system operationMCS-4 uses a 10.8 usec instruction cycle. The CPU (4004) generates synchronization signals (SYNC) indicating the start of the instruction cycle and sends them to the ROM (4001) and RAM (4002). WeChat: OpenFPGA
Basic instruction execution requires 8 or 16 cycles of a 750 kHz clock. In a typical sequence, the CPU sends a 12-bit address to the ROM in the first three cycles (A1, A2, A3). The selected ROM chip sends an 8-bit instruction (OPR, OPA) to the CPU in the next two cycles (M1. M2), and then interprets and executes the instruction in the last three cycles (X1. X2. X3).
The CPU, RAM, and ROM can be controlled by an external reset line. When reset is activated, the contents of registers and flip-flops are cleared. After reset, the CPU will start from address 0 and CM-RAM0.
MCS-4 can have up to 4K x 8-bit ROM words, 1280 x 4-bit RAM, and 128 I/O lines without any connection logic. By adding some simple gates, MCS-4 can have up to 48 combinations of RAM and ROM and 192 I/O lines.
4001, 4002, and 4004 are connected by a 4-line data bus (D0, D1, D2, D3) for all information flow between chips, except for control signals sent by the CPU on an additional 6 lines. The interconnection of the MCS-4 system is shown in the above diagram, displaying an expanded configuration. The minimum system configuration consists of one CPU (4004) and one ROM (4001). The instruction cycle diagram shows the activity on the data bus during each clock cycle and how the basic instruction cycle is broken down. WeChat: OpenFPGA
Each data bus output buffer can have three possible states: “1″, “0”, and floating. At any given time, only one output buffer is allowed to drive the data line, so all other buffers must be in a floating state. However, multiple input buffers can receive data simultaneously on each data line. MCS-4 has a very powerful instruction set that allows for binary and decimal arithmetic. It includes conditional branching, jumps to subroutines, and provides effective use of ROM lookup tables through indirect addressing. Typically, two 8-bit numbers can be added in 850 usec.
From the above, the system interconnection diagram can be obtained
The Prototype of Modern Computers - Microcomputer MCS-4
Reference Links:https://www.4004.com/busicom-replica.html
http://www.intel4004.com/
http://e4004.szyc.org/
https://en.wikichip.org/wiki/intel/mcs-4

The Prototype of Modern Computers - Microcomputer MCS-4

NOW Act Now!

Recommended Reading

【Vivado Those Things】How to Find Official Examples and How to Use Official Examples
【Vivado Common Misunderstandings and Advanced】Summary
【Vivado Those Things】Precautions for Using Header Files in Vivado
【Vivado Those Things】Common Shortcuts in Vivado (1) F4 Key
【Vivado Those Things】Common Shortcuts in Vivado (2) Other Common Shortcuts

Introduction to HDL Designer Series (HDS)

SystemVerilog Digital System Design _ Xia Yuwen PDF
In Verilog, the differences between always, assign, and always@(*)

How to Find the Maximum and Second Maximum of 32 Inputs on FPGA: Divide and Conquer
Understanding TCP/IP in One Article!
"RISC-V on T-Core" Learning Notes
What Are Your New Year Wishes? Here’s a Wave of Development Software for Everyone
Discussing Two Ways to Learn FPGA (Beginner)
ZYNQ - Sharing Resources on ZYNQ-FPGA Development Board

How to Learn FPGA from Scratch?

Sharing All Development Board Materials (FPGA+ZYNQ)

【Vivado Those Things】What to Do When FPGA Configuration Fails and Cannot Start

Do You Look for Projects on GitHub?

Book Recommendations | ARM Cortex-M0 Fully Programmable SoC Principles and Implementation

Brief Discussion: How to Learn FPGA
RISC-V Further Advanced! The World’s First 5nm RISC-V SOC Successfully Taped Out!

Several Open Source SDR Platforms
Xilinx Launches Kria Adaptive System Module Product Line to Accelerate Innovation and AI Applications at the Edge

Introduction to RISC-V Instruction Set Architecture and Introduction to Domestic and Foreign Manufacturers

Vitis Tasting (1)

Basic Principles of LNA and PA in SDR/Wireless Design

Disassembling a 1968 U.S. Military Computer, Really Doubting It's "Time Travel"!

A Comprehensive Overview of FPGA Technology Knowledge

The First Chinese CPU Instruction Specification, Loongson Launches LoongArch Infrastructure Manual

Have You Ever Seen a 1-bit CPU?

Advanced FPGA Design Techniques! Solutions for Multi-Clock Domains and Asynchronous Signal Processing

【Vivado Those Things】Netlist Description of Circuit Structure in Vivado

What Are the Differences Between Bare Metal Development and Linux Development on ZYNQ?

Click on the font above to jump to read!

Leave a Comment