This is logo for THT stand for The Heroes Of Tomorrow. A community that share about digital marketing knowledge and provide services

A Dual-CPU Computer You Can Rewire With Software

[ad_1]

When the house laptop revolution arrived, it crammed my childhood with fascination and impressed me to check laptop engineering. I wished to design a microcomputer to my very own specs. However in school I used to be by no means taught how a whole laptop system was put collectively. As a substitute we studied numerous subsystems and the idea of issues like digital sign processing and so forth. Any individual, some other place, would all the time be liable for assembling the entire system and making the whole lot work collectively.

This was unlucky and unjustified: Placing a whole working laptop collectively isn’t tough, and it can provide college students vital early confidence of their means to stay as much as the label “laptop engineer.” So, having lately retired from the high-tech trade, I made a decision to design a didactical however absolutely purposeful laptop that might function a platform for studying and experimenting with system-level design points—the Cerberus 2100.

I didn’t wish to commit Cerberus to a selected CPU, as doing so would conflate system-level structure ideas with the particular timings and management alerts of that CPU. A lot as a software-engineering course focuses on the construction of an algorithm relatively than the syntax of its implementation in a selected language, I wished Cerberus to deal with the system-level construction. Cerberus is thus a multi-CPU system, that includes each a Z80 and a W65C02S (6502), two well-known workhorse 8-bit processors that featured prominently within the home-microcomputer period. There’s a wealth of resources available for studying program these processors, that are highly effective sufficient to be helpful and entertaining, but easy sufficient to grasp.

The issue, after all, is that these two CPUs function with very totally different interfaces to different components of the pc, equivalent to reminiscence or enter/output units. As an illustration, the 6502 makes use of a single management line to point whether or not it’s studying or writing to the information bus, whereas the Z80 makes use of two strains. This implies the 6502’s sign must be mixed with the sign from the system clock, by way of an AND gate, to stop reminiscence miswrites, whereas the Z80 has no such concern. Additionally, the Z80 has an output line to sign that the worth on the tackle bus is secure, a operate absent within the 6502. And so forth.

These variations imply that I couldn’t use a normal management bus within the Cerberus. As a substitute, I used a big complicated programmable logic machine (CPLD) chip I dubbed “Fats-Spacer” to translate the management alerts of every CPU into an abstraction layer. This layer defines the system structure. Fats-Spacer then interprets the output of the abstraction layer into the suitable enter alerts for every part within the system. These two steps of translation entail each Boolean logic and timing management by means of flip-flops. I used a CPLD as a substitute of an FPGA (field-programmable gate array) as a result of, not like FPGAs, CPLDs have a hard and fast propagation delay whatever the Boolean logic applied in them. That is vital as a result of it permits customers to make changes to the system architecture—by reprogramming the CPLD—with out having to fret that the complexity of their modifications will take too lengthy to cross by means of a sequence of logic gates, and so miss the timing home windows imposed by the system clock.

Due to its inside abstraction layer, Cerberus is uniquely appropriate for growth: A direct reminiscence entry (DMA) growth port can be related to Fats-Spacer. By instantly permitting entry to system reminiscence, I let the person add much more CPUs and microcontrollers to the system by way of the growth port.

One other vital design problem was to decouple the logic of the pc from the timings of the video circuitry

One other vital design problem I confronted was to decouple the system-level logic of the pc from the timings of the video circuitry. Historically, these two are tightly tied collectively in order to coordinate entry to video and character reminiscences by the CPU and show circuitry with out inflicting conflicts or artifacts. However with two CPUs and the DMA growth port, this wasn’t an choice.

As a substitute, Cerberus makes use of two dual-ported static RAMs (SRAMS) as video and character reminiscences. Every port permits asynchronous entry to the reminiscence’s contents. One port of every SRAM is related to the pc correct, whereas the opposite is unique to the video circuitry.

An illustration showing how central data and memory address buses interconnect the CPUs with other components, while control signals are routed through a chip marked Fat-Spacer.The Z80 and 6502 processors use totally different management alerts to interface with reminiscence and interface chips. A reprogrammable logic chip, dubbed Fats-Spacer interprets these alerts as required. One other reprogrammable logic chip handles storage and the keyboard interface, whereas a 3rd generates video alerts. James Provost

Regardless of the dual-ported reminiscences, onscreen glitches might nonetheless occur if the video circuitry was to learn from a given tackle as the pc wrote to that very same tackle. Luckily, dual-ported SRAMs present a “BUSY” sign to point a battle. This sign is utilized by Fats-Spacer to pause the CPUs throughout the battle. The management abstraction layer comes very helpful right here too, because it already has the suitable translation logic for pausing the CPUs.

Fats-Spacer isn’t the one CPLD in Cerberus: Three of them represent the system’s core chipset. Fats-Cavia constantly scans the video and character reminiscences, and sends bitmaps to Fats-Scunk, which then generates the suitable RGB alerts and synchs pulses to create a 320-by-240-pixel VGA output. In the meantime, as we’ve seen, Fats-Spacer supplies the glue logic. Lastly, there’s an extra chip: Fats-Cat, which is definitely an ATmega328PB microcontroller. That is used to deal with I/O: The microcontroller manages a keyboard, buzzer, the growth protocol, and a microSD card for storage. The I/O firmware is held within the ATmega’s reminiscence, that means it leaves no reminiscence footprint within the 64 kilobytes of RAM accessible to the Z80 and 6502.

The Cerberus 2100 is an open {hardware} design out there to all and complete details are available on my website. However for many who don’t wish to construct their very own machine from scratch, I’m working with European electronics firm Olimex for the sale of a totally assembled model shortly. I hope it helps college students and hobbyists to know—and school to show—how a whole, absolutely purposeful laptop might be put collectively, whatever the goal CPU.


This text seems within the November 2023 print concern as “Software program-Outlined Structure.”

From Your Website Articles

Associated Articles Across the Net

[ad_2]

RELATED
Do you have info to share with THT? Here’s how.

Leave a Reply

Your email address will not be published. Required fields are marked *

POPULAR IN THE COMMUNITY

/ WHAT’S HAPPENING /

The Morning Email

Wake up to the day’s most important news.

Follow Us