Skip to main content

Posts

Making a URISC Processor: Micro-Instruction Encoding

Recent posts

Making a URISC Processor: Micro-Instructions

In the previous posts I have explained what the instruction does, the architecture and the control word for controlling all the elements of the architecture. Now, let me try and explain how the instruction is actually entered in RAM. The 'SUBNEG' instruction as I had explained in the first post has three 16-Bit operands. The RAM stores only one 'Byte' or 8-Bits in each address/memory location. So, we need to split each 16-Bit number further into 2 parts (2 bytes) and save them in consecutive addresses. After splitting the number into 2 bytes we can name them as 'Higher Byte' and  'Lower Byte'. So, suppose the number was A where, A= 1011 0100 1100 1101 ( #B4CD in hexadecimal) I will call the lower byte as A(l) and higher byte as A(h) hence, A(h)= 1011 0100 ( #B4 ) A(l)= 1100 1101 ( #CD ) now that we have split the numbers we need to store them in 2 consecutive addresses lets assume for now the addresses are address #0000 and address #0001 . So, now t...

Making a URISC Processor: The Control Word

 In the previous post I had discussed the basic idea of the URISC processor and the 'SUBNEG' instruction. In this post I will try and explain how the various registers are controlled. First let me talk about the control word. A control word is a a large binary number (also called a word) that is used to control the various elements in the processor. The arrows in the block diagram show the direction in which the data can move and this can actually give us some insight to the control word. For eg, the program counter has bidirectional arrow i.e. it can read as well as write to the 16-bit address bus. So, the program counter needs a read and write control line. Going by the same idea all the control lines can be figured out. The table below, shows all the various control lines of each component. In the table 'IE' is Input Enable (read line) and 'OE' is Output Enable (Write line). The 'inc' control line is for incrementing the program counter by 1. 'RST...

Making a URISC Processor: The Idea

So a while back I saw this video on Youtube by "Gary Explains" talking about a "One Instruction Set Computer". For those who do not know, a computer processor does a fixed set of things or follows a fixed set of instructions. Usually modern processors have hundreds of instructions. In the OISC or URISC (Ultimate Reduced Instruction Set Computer) processor the idea is to have one universal instruction that the processor executes that allows the programmer to write any program. The first time I heard of this idea I fell off my chair with excitement (Literally). My mind was really blown by the fact that you could write any program with just one instruction. So after going through what "Gary" on Youtube had to offer... I sat down and tried to come up with a design of this hypothetical processor that executes only one instruction. In the video Gary talked about a processor that executed an instruction called 'SUBLEQ' which simply means, SUB tract and th...

DESIGNING A RELAY COMPUTER: Registers and The Data Bus

In the previous post I explained how to make single bit memory circuit using relays. In a computer however, we want to deal with larger numbers not just 0 and 1. So, we can have N 1 bit memory units side by side and consider them as a single N bit number. The more bits you have clubbed together the larger a number we can store. For ease of explaining lets just consider four 1 bit memory units together. These four bits can together can also be called a "4 bit register". The right most bit with the lowest place value is called the LSB (Least Significant Bit) and the left most bit having the highest place value is called the MSB (Most Significant Bit). Now, with this four bit memory unit we can save any number from 0 to 15 i.e., from 0000 to 1111. A memory register is of no use if it does not have DATA lines for us to read from or write to, so lets add them first... In order to read and write to the register we also require read and write control lines. This is how they ...

DESIGNING A RELAY COMPUTER: The Memory

We often judge a computer by its memory. This because a larger memory allows you run larger and more complex programs. But, what does memory actually mean? where is this data actually stored? how does memory in a relay computer work? The idea of memory is very straight forward. If an object, having multiple states/configurations, is put in one of its states and it stays in that state indefinitely it can be called a memory unit. For example a tally counter: You can set any 4 digit decimal number on a tally counter and that number stays as it is indefinitely unless it is reset or rewritten. So a tally counter is a 4 digit memory and each digit has ten states and hence it can save any number from 0 to 9999. By the same concept a latching Switch that we use daily to control home appliances is also a form of memory. A simple latching switch is a single bit memory unit i.e. it saves a single binary digit having only two states ON and OFF. Since each switch denotes 1 bina...

DESIGNING A RELAY COMPUTER: The Negative

When we hear about negative numbers the symbol " - " comes to mind since the use of the symbol seems to make any number negative. As human beings it is pretty easy to think about negative numbers and deal with the " - " symbol. But for a computer we need a binary notation for this too since there is no way of representing " - ", it either has to be a 0 or 1. In this post I will try and show the various ways one could write negative numbers in binary and whether or not they are suitable for doing mathematics. To test if the representation method is appropriate we can try doing a simple arithmetic operation such as subtraction. If the result generated after the operation matches the correct result, we can be sure that the system of representing the numbers works. Sign Magnitude: To solve the problem of handling negative numbers we can device a simple solution of using an extra bit on the left of the number and call it the "Sign Bit". The re...