Abstract:
A simple computer comprising a group of individual sub-circuits that can be plugged together in several ways to form an operating computer. The invention is used to teach students the basic components of a computer and to demonstrate how each sub-system works and its interrelationship with the other sub-systems. The invention is designed so that it can be easily assembled and disassembled and the components are readily visible to the students.

Description:
[0001]    This invention relates to a simple programmable computer to be used in teaching computer basics in the classroom whether in computer science, engineering, physics, electronics or any other class of any curriculum where the basics of computer operation and interrelationship with programming needs to be taught as well as the internal architecture of commercial computers. This invention is also intended for use of individuals outside of the classroom for self-teaching purposes.  
         GENERAL DESCRIPTION  
         [0002]    The computer that forms the basis for this invention is to be used as a teaching aid only. It is not a complete commercial computer that allows for word processing, advanced gaming, or any other of the many complicated tasks that modern computers are capable of. It is solely a teaching aid for answering the many questions of the engineer, scientist, student, hobbyist or just curious.  
           [0003]    The teaching aid will help answer many questions that the average person has about computers which include the following as well as other questions.  
           [0004]    1. What is machine language? 
           [0005]    2. What is a computer processor? 
           [0006]    3. What is an Arithmetic Logic Unit? How is it implemented? 
           [0007]    4. What is a Control Unit? How is it implemented? 
           [0008]    5. What is a bit? . . . a byte? . . . How are these implemented? 
           [0009]    6. What is Random Access Memory? 
           [0010]    7 How is a program stored in Random Access Memory? 
           [0011]    8. What is a Central Processing Unit? 
           [0012]    9. How does a Central Processing Unit retrieve program instruction from The Random Access Memory? 
           [0013]    10 How does a Central Processing Unit execute program instructions? 
           [0014]    11. How are these instructions implemented? 
           [0015]    12. What is a computer clock and what does it do? 
           [0016]    13. What do computer chips look like and how are they interconnected? 
           [0017]    These are but a few of the many questions that arise from students and the curious regarding computers and this instant teaching aide is designed to assist the instructor or teacher in teaching these basics of computer operation.  
           [0018]    The teaching aide is packaged in a kit so as to enable the student to build the aid right in class under the tutelage of the instructor and/or outside the class via personal study. It contains a complete set of components and a comprehensive instruction manual to guide the teacher and the student in implementing the computer teaching aid.  
           [0019]    The teaching aid represents the functional architecture of today&#39;s computers and teaches the fundamental concepts of modern-day computers with hands-on experience by having the student build a simplified version of today&#39;s computers.  
           [0020]    The student learns to build a Central Processing Unit, a CPU, implement the Unit, implement an arithmetic unit, implement instruction fetch and execution cycles, implement four basic machine language instructions, connect a Random Access Memory, a RAM, to the CPU, and program the RAM with machine instructions that he or she implements, and monitors how the CPU executes the programs.  
           [0021]    The package comes with circuit chips, breadboard, power-supply, switches, wire, light emitting diodes (LED), resistors, capacitor, and a lab instruction manual.  
           [0022]    Accordingly, it is an object of this invention to provide a computer teaching aid that is programmable, and  
           [0023]    It is a further object of this invention to provide a programmable teaching system for instructing students to build a simple computer, and  
           [0024]    Another object of this invention to provide a simplified computer which performs only basic functions but nevertheless is programmable for teaching students computer operation, and  
           [0025]    A still further object of this invention is to provide a kit for teaching students the fundamentals of computer operation, and  
           [0026]    Yet another object of this invention is to provide a package containing a RAM, a set of small scale integrated circuit chips and the other necessary components for assembling a teaching aid that is programmable, and 
       
    
    
       [0027]    These and other objects of this invention will become apparent when reference is had to the accompany drawings in which:  
         [0028]    [0028]FIG. 1 is a block diagram of a typical stored-program computer,  
         [0029]    [0029]FIG. 2 shows the simple computer that is built by the student, and  
         [0030]    [0030]FIG. 3. is a detailed block diagram of the simple computer, 
     
    
     DETAILED DESCRIPTION  
       [0031]    [0031]FIG. 1 shows the basic computer model  100  that represents most of today&#39;s computers. It has a memory  101 , a CPU  102  containing an arithmetic &amp; logic unit, control unit and registers, and an input/output  103 .  
         [0032]    [0032]FIG. 2, illustrates the functional components of the simple computer  200  consisting of a CPU  203 , a RAM  202  and input/output devices  201 , 208 , respectively. These components are made very simple so that the system is inexpensive and can be build within a short period of time. For example, the RAM  202  can store only sixteen 4-bit instructions while modern computers store millions of larger instructions and data. Also, while a commercial CPU may implement hundreds of instructions, this teaching aid only handles four instructions. The arithmetic and logic unit (ALU) of a commercial computer has many arithmetic and logic functions such as add, subtract, multiply, divide, is-greater-than, is-equal-to, etc. In the teaching aid there is only one arithmetic function, for example, an adder, and a logical data transfer function.  
         [0033]    The Control Unit of the CPU is functionally similar to that of a commercial computer (e.g., it retrieves instructions stored in RAM and executes them), but in the instant invention, the physical size is greatly scaled down.  
         [0034]    While most of the components are of limited function and scaled down the overall architectural functionality of the computer is not scaled down. It is the same as or similar to its commercial counterparts. By building the simplified computer, a student will learn the basics of building larger, more complex computers. FIG. 2 shows the computer that is built by the student. Note that the memory is a 16 by 4 Ram and that the Arithmetic Unit  204  contains an adder and a sum register. The Control Unit  205  functions include a clock, a timing Signal Generator, an Instruction Fetch, and an Instruction Execution. The CPU Register set  206  contains two 4-bit registers, Register A and Register B. Also included is a Data Bus  207 .  
         [0035]    The CPU Instructions include:  
         [0036]    Increment Register A  
         [0037]    Increment Register B  
         [0038]    Move Register A to Register B  
         [0039]    Move Register B to Register A.  
         [0040]    The Input devices shown are switches (for entering data into RAM) and the OUTPUT devices are light emitting diodes to monitor what is happening at various locations of the computer.  
         [0041]    This teaching aid computer is purposely going to be millions of times slower than commercial computers so that one can easily monitor the flow of data and the execution of the instructions that one can build.  
         [0042]    The package contains a list of the components already enumerated and a data representation and binary number system as well as logic gates.  
         [0043]    [0043]FIG. 3 shows the block diagram of the teaching computer  300 . It consists of a Timing Signal Generator  301 , with Clock, Counter, Decoder and Inverter. The timing signals from this are used in implementing the instruction cycle. These signals travel to the Control Signal Generator  302 , which has two AND/OR gate chips for ControlSignals. Registers  303  and  304  are included with their associated Output Buffers. The Ram  305  is connected to Program Counter  305 , which also contains an OutputBuffer. Also connected to Ram  305  is Instruction Decoder  306  which contains an inverter, decoder and inverter. Signals from Decoder  306  are forwarded as I 1 , I 2 , I 3  and I 0  to the Control Signal Generator  302 . The Arithmetic Unit  308  receives input from the Bus. Signals from Timing Signal Generator  301  pass to the Control Signal Generator  302  via T 0 , etc.  
         [0044]    The computer circuit is build on four breadboards, BB 1  through BB 4 , as noted in FIG. 3. The main power supply connects to BB 4  and the H 1  and Grnd power strips of all four boards interconnect to each other. Each black box on FIG. 3 is an integrated circuit chip.  
         [0045]    The teaching computer is designed to execute four instructions that operate on Data-Register A and Data Register-B. These are tabulated below:  
                                       Instruction   Machine Code   Description                   IncA   0000   Increments the contents of Register A by one       IncB   0001   Increments the contents of Register B by one       MovAB   0010   Moves the contents of Reg. A into Reg. B       MovBA   0011   Moves the contents of Reg. B into Reg. A                  
 
         [0046]    As an instruction executes, the student will be able to monitor the execution via the LED&#39;s that show the contents of these registers, the contents of the program counter, the clock signal the timing signals, and other things you wish to monitor (e.g., the signal for the instruction that is executing, what is on data lines, etc.).  
         [0047]    The Timing Signal Generator  301  generates distinct time signals from T 0  to T 9  in repeating cycles. Each cycle executes one instruction and is called an instruction cycle. These time signals are generated at the rate of the clock frequency (e.g., two signals per second). Timing signals are used to trigger certain operations during an instruction cycle.  
         [0048]    The BUS is a computer architecture term referring to a number of parallel conductors used by CPU components for exchanging data. The term BUS implies that it is a shared medium. The BUS shown in FIG. 3 consists of four parallel conductors used by several chips for exchanging data. (i.e., a chip puts data on the BUS, another one takes it off).  
         [0049]    The Arithmetic Unit  308  performs only a single operation: incrementation. The adder receives the data to be incremented from the BUS and delivers the sum to its output pins. The SUM in  signal stores the adder output in the Sum Register, and the Sum out  signal opens the buffer gates allowing the sum to flow into the BUS.  
         [0050]    Program Counter  305  (PC) chip contains the 4-bit RAM address of an instruction. After an instruction executes, the PC is incremented by one (i.e., via the Arithmetic Unit) and points at the next instruction to execute. Incrementing the PC is implemented in two time steps:  
         [0051]    1. At time T 0 , the control signal PC out  and Sum in  are activated. The PC out  signal opens the buffer gates that connect the BUS allowing the PC contents to flow into the adder and the Sum in  signal store the incremented address in the Sum Register.  
         [0052]    2. At time T 1 , the control signals Sum out  and PC in  are activated. The Sum out  Signal opens the buffer gates that connect to the BUS allowing the Sum-Register contents to flow into the BUS and the PC in  signal allows the incremented address into the PC Register.  
         [0053]    The Data Registers A and B each store 4-bits of data. During execution of the instruction MovAB or MovBA, data of the source register flows through the BUS into the destination register. During execution of IncA or IncB, data of the specified register flows through the BUS to the adder and back to the register through the BUS.  
         [0054]    RAM  305  contains sixteen 4-bit data locations and it can store sixteen instructions. During programming, one manually specifies these instructions and their RAM locations (i.e., the instruction address) via the switches. During program execution, within each instruction cycle, RAM receives an instruction address from the PC and delivers the 4-bit instruction to the Instruction Decoder.  
         [0055]    Instruction Decoder  306  has a circuit that decodes a 4-bit instruction to activate one of the four instruction signals that goes into the Control Signal Encoder. Control Signal Encoder  302  maps the incoming instruction signals and timing signals into control signals which trigger sub-operations within an instruction cycle. The Program Counter is incremented via the first two timing signals of the instruction cycle: the signal T 0  activates PC out  and Sum in , and the signal T 1  activates Sum out  and PC in . An instruction is executed during the time T 2  and T 3  time steps of the instruction cycle. For example, the instruction IncA is executed via activating the control signals A out  and Sum in  at T 2 , and activating the signals A in  and Sum out  at T 3 . One notes that the contents of the Program Counter which is incremented during the first two timing signals stays the same during the rest of the instruction cycle. Therefore, all through T 2  and T 9 , RAM output pins contain the same instruction and the Instruction Decoder  306  continuously feeds into the Control Signal Encoder the signal for this instruction.  
         [0056]    To operate the teaching aid, one enters his or her program into RAM  305  manually before execution using the data and address switches. As FIG. 4 illustrates, each 4-bit memory location for storing an instruction has a 4-bit address. These addresses range from 0000 to 1111. To write into RAM, the student specifies the memory location via the address switch, specifies the instruction via the data switch, and manually sends to RAM a write signal. The four pins of the data switch connects to RAM&#39;s data input pins and the four pins of the address switch connect to RAM&#39;s address pins (not shown).  
         [0057]    While only one embodiment of this invention has been shown and described in detail it will be obvious to those of ordinary skill in the art to devise other modifications and changes without departing from the scope of the appended claims. For example, one can choose to write one&#39;s own codes for the given instructions. To do this, one will have to redesign the wiring in the Instruction Decoder and the Control Signal Encoder accordingly using the design shown herein as an example.  
         [0058]    Likewise, the signals T 0 , T 1 , T 2  and T 3  used in this example can be replaced with other timing signals of the instruction cycle. The chips shown in FIG. 3 can obviously be arranged differently and by adding more breadboards to the package, one can enhance the Arithmetic and Logic Unit by including other chips for division, multiplication subtraction, etc. One can also provide for a larger instruction set to implement those added functions. One could also implement interrupt processing and connect input devices to this mechanism. One can also replace the RAM with a larger RAM, modify the Ram access mechanism (e.g., by including MAR, MBR, and IR registers) and modify the instruction format to support a stack machine or a 1-address, a 2-address, or a 3-address machine. One can also replace the 4-bit simple computer with an 8-bit simple computer.