tpthlalsc

  • code1949
    13th Jul 2011 Member 0 Permalink
    @mark2222 (View Post)
    That is odd...
  • massey101
    13th Jul 2011 Member 0 Permalink
    My god this is genius! I wish I had INST and ARAY when designing my computer :D. I love the different ways the new elements can be used in logic en mass. Are you sure you cannot make it faster? What operation on which component is slowing you down?

    EDIT: Too bad the memory is ROM. I would of liked to create a compiler. But I guess it is a lot more compact.

    EDIT: Whats with the 11111 on the IF Jumps? Is it meant to represent 1111 for if true? If so you have a spare bit at the end that could be used to increase the memory to 64 words. I don't know the details of your computer so not sure if it will work.
    Edited by massey101, 2011-07-12 14:20:34
  • mark2222
    13th Jul 2011 Member 0 Permalink
    @massey101 (View Post)
    In terms of speed I think I already did the best I can. Coming from an OOP background, however, I found myself emphasising functionality more than speed. For example, the language used to code it is made high level (no dealing with registers) so as to allow for more functionality due to the fact that the same thing can be programmed in less lines, allowing one to fit more stuff into one program, but it creates a lot of bloat. There exists a faster programmable computer already in powder toy, but it uses registers and it can't add or subtract.

    The main operation that slows me down is multiplication/division. It is a very very common function, but I didn't bother to make a component for it as it would take up quite a lot of space. Now it must be done with loops, causing it to be much slower than if done in hardware itself.

    About the language itself, please read my first post. If it is too unclear, please tell me exactly what is unclear. But to answer your question, 11111 means "take value at memory slot 15 (1111)". True would be "01111", meaning "take constant true". Memory slot 15 is actually register C, where the result of all operations go. For example, if you want to say "if(x>y) goto 10", you first say "x>y", then "if Operation Result, goto 10".
    Edited by mark2222, 2011-07-12 14:42:05
  • Thimo
    13th Jul 2011 Banned 0 Permalink
    This post is hidden because the user is banned
  • massey101
    13th Jul 2011 Member 0 Permalink
    Well the entire thing is slightly confusing :S.

    Within the 14 bit word, you have the first "command" which is 1001 for IF GOTO then 11111 just randomly there. I cannot find an explanation. Then you have where you want to jump too in 5 bits. I just reckon that the final bit of the 11111 could be used to make your jump commands 6 bit it seems as though there mayyyy be enough room.

    However if you also want to include multiplication and division in your ALU then there really won't be much room. I really hope you make multiplication and division because Crionis's computer runs at 66.7 cHz while yours runs at 6 cHz...

    Anyway keep up the good work!
  • mark2222
    13th Jul 2011 Member 0 Permalink
    @massey101 (View Post)

    (quote) About the language itself, please read my first post. If it is too unclear, please tell me exactly what is unclear. But to answer your question, 11111 means "take value at memory slot 15 (1111)". True would be "01111", meaning "take constant true". Memory slot 15 is actually register C, where the result of all operations go. For example, if you want to say "if(x>y) goto 10", you first say "x>y", then "if Operation Result, goto 10".

    Crionis's computer (I assume) works directly with registers. As I said the main killer in terms of speed for my computer is the bloat. I hoped to be able to do in 1 line what his can do in 3, so as to do more complex procedures. As for including multiplication and division, I would have to remake the entire system, as the ALU is already optimised for space.
  • massey101
    13th Jul 2011 Member 0 Permalink
    OK, so there is no way to have an additional bit to be used with jump commands :(. Do you have any idea's on features you could add, or is it done?
  • mark2222
    13th Jul 2011 Member 0 Permalink
    (quote) Array reading is a simple extension to the computer. However, I would only think about implementing it if there is any more use to such a function other than array reversing or sorting. If anyone would like to do it himself, go ahead.

    Other than that, I don't quite have any ideas as to how to improve it. Maybe I could replace a few parts here and there to make it faster, smaller or more functional when I think of any ideas. However, at this point there isn't really much more I can do. I'm happy with the programming language with all its slowness and I don't have much drive to change it.

    I think it would be better if I just sit back and wait for someone to develop a 5-bit computer. Other people who are more knowledgeable about the subject area in real life would surely be able to do a better job than I.

    Do you have any ideas yourself?
  • devast8a
    13th Jul 2011 Former Staff 0 Permalink
    Just sent this to the front page, enjoy.
  • mark2222
    13th Jul 2011 Member 0 Permalink
    @massey101 (View Post)
    If you want to make a compiler without altering the programming palette, I would be very grateful if you can make one that programs it line by line. Personally, I think even copying and pasting is easier than converting everything to binary and slowly sparking it out.

    I could try to increase its speed by making it do more tasks in parallel. Better components from the community would be much more effective in terms of improving the computer, but I don't really think many people would want to do that. In terms of other major upgrades (other than bug fixes), however, they probably wouldn't come until at least the end of August. Will be a bit busy for the next month.

    By the way, devast8a, thanks for the front page. I'm just afraid that there may be bugs in the system. Oh, and great processor. It was a source of inspiration during my first draft :D.

    EDIT: Just sped it up by more than 5%...
    Edited by mark2222, 2011-07-13 14:00:18
Locked by Lockheedmartin: Necro