My4TH - A discrete CPU Forth computer

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone my name is Dennis kosher and I would like to introduce my latest project the fourth deck the fourth deck is based on a cpuless computer board that I call the myforce computer this computer can be programmed in an oil programming language called forth please note that this video is split into two cards the video starts with an overview of the computer and later on I will go into the details of how the myforce computer board works and how the discrete CPU is constructed the fourth programming language was invented in 1969 by Charles Moore fourth is a stack-based low-level programming language that follows reverse polish notation where operators are placed after their operands fourth programs consists of a set of so-called Words which can be defined and redefined interactively a language does not have a traditional compiler instead it is interpreted or compiled on the Fly making it highly interactive and suitable for small and simple computer systems with fourth I found the ideal programming language for my my fourth computer because it is very efficient produces small and compact code a low slow level control of the board's hardware and has a built-in debugger but now let's talk about the fourth deck it has no CPU and no microcontroller the system is based on the 17 logic chips of the 74 CMO series and four additional memory chips the computer has 32 kilobytes ROM and 32 kilobits Ezra application programs and fourth source code can be stored in two ee prompts the fourth deck has a bigger character display and a full-sized keyboard it provides a Serial keyword and an isklc interface which are accessible on the rear side it includes a lithium battery that lasts at least 6 hours and the whole thing is very portable it only measures 20 by 12 centimeters the fourth deck is made up of two boards the keyboard and the myforth computer board the boards can be connected with a flat cable or stacked on top of each other the fourth text keyboard PCB was sponsored by PCB way [Music] [Applause] [Applause] foreign [Music] [Music] the fourth deck has a built-in text editor that you can use to write your fourth programs directly on the deck the fourth dictionary can be extended by binary modules that can be loaded from eeprom the M4 float module its floating Point support as shown here okay [Music] now I show you how to compile a simple game called 2048. foreign [Music] now I would like to tell you a little bit more about the my fourth computer board the computer does not have a CPU or microcontroller it uses only 16 simulator chips from the 74 high-speed CMO series it has 32 kilobyte SRAM and 32 kilobyte eprom memory there are two optional ee prompts that can be used to store fourth blocks the computer does not have an arithmetic logic unit it has only a single nor gate that is used for all calculations the arithmetic logic unit is completely implemented in software the board is clocked at 8 megahertz but can be clocked at up to 14 megahertz with careful selection of components the software aromatic logic unit can perform up to 6 300 8-bit additions per second when the bot is clocked at 8 megahertz the bot has one uart one I Square C and one parallel gpio interface and the size of the board is only 10 by 10 centimeter the eprom contains the microcode as well as the application code CPU registers are stored in the S run the u-word in the ice crossy interface are implemented in software and are therefore relatively slow the yard has a fixed Port rate of 4800 volt the gpio connector provides six digital inputs and five digital outputs for general purpose use for example the keyboard and display of the fourth deck are connected to this interface the bot can be powered via a mini USB socket or wire heater pins the power consumption is less than 0.6 Watts and the bot is populated with through-hole components only no smts this is the block diagram of the myforce computer board it doesn't matter how closely you look you won't find a microcontroller here all functional units are built with a simple CMOS Gates you can find them on the board and the positions shown here in the following chapter I will explain how my fourth really works but first I would like to tell you about my philosophy and design goals when I started working at my fourth first keep it simple focus on the essentials memory arithmetic logic unit control logic and IO second reduce the number of transistors required including those and chips to a minimum third keep the amount of memory required low because more memory means more transistors fourth all new strips that are still in production this makes it easy to rebuild the computer because all parts are available and fifth build something useful other people should be able to use the computer without knowing the sampler language I know there are some computer designs on the internet that are smaller in terms of the number of chips used but they are either unusable because you have to program them in their own micro code language or they are limited in their address space so you have to squeeze your program into a 256 bytes or less I think my fourth is a good compromise between the number of chips used and the usability and it should be possible to build my design using components that were already available in the 1970s or early 80s now it's time to get down to the nitty-gritty here are some important details about myself a micro instruction is 16 bit wide a microcoder instruction cycle has two phases and the first phase the 8-Bit control word is loaded from the eprom into the control word ledge the control word defines the source and the destination for the following data flow cycle in the second phase the transfer of the data takes place if the eprom is the data source the upper 8 Bits of the micro instruction can be used as a constant value EG to address a register in the ram microcode can perform conditional jumps within the range of 128 Micro instructions this makes it possible to construct Loops to perform 8-bit operations on the single nor gate CPU registers are stored in the ram EG the PC SP accumulator and other registers this is how the OneNote Gates arithmetic logic unit works my fourth has only one data transfer register for temporary data storage only databit 0 is passed through the single nor gate all logic functions that need to combine two data sources are routed through this gate additions can be performed by repetitive operation of this nor gate same for and or xor Etc simple arithmetic logic functions are implemented as lookup tables and the eprom there are tables for incrementing decrementing Left Right rotating and for zero testing abide here you can see how a one bit full adder can be constructed from lower Gates the predecessor of mayaforce the minor computer uses this nor gate-based Adder however the myfos computer uses a small lookup table for one bit additions to gain a bit more speed this is an example how my portal implements bit rotation it takes three micro instructions to rotate a byte first load data register into temporary register so it can be used as address second load the ID of the lookup table to be used into a register third perform the table lookup and write the result back to the data register remember the execution of a 16-bit wide micro instruction has two phases first phase fetch the lower 8-bits of a micro instruction into the control word latch these bits are used in the second phase to define the data source and destination second phase execute the instruction move data from any source to any destination The Source can also be the upper 8 Bits of the micro instruction this slide shows the structure of a micro instruction the first byte contains the bits that Define the data source and destination there's also a bit that enables conditional loading of the micro instruction counter the second byte is optional here is an example of what the microcode looks like the fragment shown here increments the program counter as you can see the microcode is very complex and many clock Cycles are required for relatively simple operations now I would like to share with you my approach to how I developed the minor computer so let us build a CPU first we need a ROM for the microcode we use an 8-bit counter at a0 to A7 to address the micro instructions the current opcode is applied to the inputs A8 to A14 of the eprom because my fourth has two execution phases for each micro instruction we need a register to store the lower 8 Bits of the micro instruction in the first execution phase this control word defines the data source and sync which is addressed in the second phase we always will need RAM to be able to address each memory cell of the ram we need two registers to hold the memory address but because we also want to be able to run code from the ram we need to connect to the address and the data passes together this also enables random access to the eprompt through the two address registers let's add some more connections the address registers and the opcode register can be loaded with data from the RAM and from the eprom on my fourth the micro instruction counter can be loaded with the value coming from the address register this allows conditional jumps within the microcode without destroying the contents of the data register now we add the arithmetic logic unit the data register is the only register in the data boost that can store temporary values the data register not only stores the result of the nor gate operation but it also serves as a storage for data to be copied from one cell to another sale in run the computer still needs some i o which we'll add now at last some glue logic needs to be added to tie it all together finished this is the schematic of the myfold computer please go to my website to download a high resolution image the my fourth computer is completely Home Source on my website you will find everything you need to build your own my first computer thank you for watching this video
Info
Channel: MyNOR
Views: 9,404
Rating: undefined out of 5
Keywords:
Id: Kn0MxHlima0
Channel Id: undefined
Length: 13min 11sec (791 seconds)
Published: Sun Sep 10 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.