Seite 2 von 2

Re: [Projekt] eigener Computer

Verfasst: 11.07.2017, 19:52
von RedGuy
Hi !

Bezüglich Photos und neuem Material: Das bringe ich natürlich sofort, wenn ich Welches habe.


So. Und hier kommt auch schon wieder etwas Neues:
Ich habe gerade mein Software-Geteilt implementiert.

Dies bedeutet, wenn in meiner Programmiersprache geschrieben steht,

a = b / c

dann heißt das, dass eine Geteiltfunktion (softwaremäßig) aufgerufen wird, welche BINÄR b durch c teilt.

Nun werde ich exklusiv den source-code (in meiner Programmiersprache Arise) veröffentlichen 8-) !

Die Textdatei liegt hier: https://sites.google.com/site/ncoreshof ... 20test.txt

Viel Spaß damit !

Also der code ist in meiner virtuellen Maschine getestet und funktioniert !

Ihr kennt sicherlich noch die Teilenmethode aus der Grundschule :) .
So wie es im code steht kann man im Zweiersystem teilen !

Mal sehen ob Ihr den Algorithmus mitverfolgen könnt.


Jetzt brauche ich keinen Hardware-Teiler mehr implementieren, weil wie Ihr sicherlich seht wäre das ganz schön aufwendig (ich meine die Hardware-Synthese).


Gruss
RedGuy

[EDIT]hey mein 100. Beitrag :) .

Re: [Projekt] eigener Computer

Verfasst: 11.07.2017, 22:02
von DerAlbi
Dein Algorithmus ist leicht suboptimal. Du probierst ja wirklich jedes Bit durch... warum?
Angenommen bei A/B = C
-> Bei A ist das höchstwertige gesetzte bit Bit 22
-> Bei B ist das höchstwertige gesetzte bit Bit 8
Dann musst du bei C nur ab bit 22-8 = 14 probieren.

Re: [Projekt] eigener Computer

Verfasst: 12.07.2017, 15:00
von RedGuy
Hi !

Kann sein, es ist jedoch Gegenstand späterer Versionen, dies zu optimieren.

Jetzt funktioniert der Algo als erstes einmal ;) .

Auf den ersten Blick hast wahrscheinlich recht könnte ich das höchste Einserbit überprüfen.


Aber der Algorithmus ist doch interessant, oder ?

Gruss
Red

Re: [Projekt] eigener Computer

Verfasst: 12.07.2017, 22:49
von DerAlbi
:-| Das ist so ultra brute force.... da würde ich jetzt erstmal deiner geforderten Bauchmiezelei widerstehen ;-)
Schon das Nutzen eines Multiplizierers wäre für mich ein NoGo... das kann man das z.B. auf ein Shift und Add/Sub reduzieren. Ich verstehe auch nicht, warum du das in Software machen willst, wenn du den Prozessor eh selber machst.. gib den doch ne Hardwaredivision und gut.
Ich hab mit dem gleichen Prinzip eine bitgenaue Fixkomma-Wurzel geschrieben... da war das Brute-Force das Schnellste, was es gibt.

Re: [Projekt] eigener Computer

Verfasst: 08.08.2017, 21:32
von Krishty
Raymond Chen schreibt über den Alpha AXP; der hatte auch keine Integer-Division. Vielleicht kannst du dir ja dort das eine oder andere abgucken.
There are three common workarounds:
  • Use a helper function.
  • If dividing by a constant n, you may be able to use the UMULH instruction to multiply by (2⁶⁴÷n) and then extract the high 64 bits (which means to divide by 2⁶⁴).
  • Convert both values to floating point, perform a floating point division, and then convert the result back to an integer.

Re: [Projekt] eigener Computer

Verfasst: 11.08.2017, 19:42
von RedGuy
Hi zusammen !

@krishty
Also ich werde doch ein Hardware geteilt bauen - hab mich umentschieden ;) ...
Es kostet zwar an enormer Entwicklungsarbeit, aber es ist durchaus machbar...


Also im Moment bin ich an einem PS/2 Controller dran !
Das ist höchst interessant. Denn ich erledige die Kommunikation nicht über Interrupts, sondern
-gemäß meiner Grundphilosophie- asynchron über sogenanntes Polling.

Für den Sound-chip gab es ja in meinem zugehörigen Thread kleine Meinungsverschiedenheiten.
Ich hab jetzt eine logarithmische Formel eingesetzt - so wie es in einer Quelle im Internet http://www.sengpielaudio.com/calculator-spl.htmzu Verfügung steht.


Ganz interessant / Funktionsweiße vom PS/2 Controller:
die Tastatur/Maus senden mit 10-16,7 kHz serielle Daten und mein PS/2 Host chip fragt mit entsprechend höherer Frequenz ab.
Der Host (mein Controller) stellt die interpretierten deserialisierten Daten an dafür vorgesehenen Registern bereit.
Der auf dem Betriebsystem installierte Tastatur-/Maustreiber holt die Daten von den Registern ab und schreibt sie
in meinen sogenannten Treiber-Abstraction-layer im RAM. Dort sind diese (z.B. Mausbewegung oder Klick) für alle Programme verfügbar- über das Treiberprotokoll.

Mein Controller erkennt auch korrupte Eingabegerätedaten !
Das Protokoll für den Datentransfer wurde übrigens von IBM entwickelt.

Wenn ich wieder größere Meilensteine habe und screenshots dafür habe- poste ich wieder etwas !

Gruss
RedGuy

Re: [Projekt] eigener Computer

Verfasst: 11.08.2017, 22:56
von Krishty
RedGuy hat geschrieben:Das Protokoll für den Datentransfer wurde übrigens von IBM entwickelt.
Ja; IBM hat PS/2 damals eingeführt. Auch die Scancodes von Tastaturen sind noch nach IBM-Standard. AFAIK müssen USB-Tastatureingaben entsprechend umgerechnet werden, um mit Spielen usw. kompatibel zu sein.

Re: [Projekt] eigener Computer

Verfasst: 04.09.2017, 15:36
von RedGuy
Hi zusammen !


Als Anhang ein screenshot bezüglich meiner aktuellen Arbeit an meinem eigenen Computer.
binary up-counter with preset
binary up-counter with preset
Das Ganze (screenshot) ist der elementare Teil eines Binärzählers. Hier noch 1 bit groß.
Dieser wird dann programmatisch automatisiert auf 128bit hoch berechnet.
Das Programm worin dieser samt seiner Komponenten dargestellt wird, ist meine schon beschriebene eigene Chip-Design-Software "nDesign".
Der Zähler besteht im Elementaren aus einem modifizierten JK-Master-Slave-FlipFlop.

In meinem Computer befindet sich der Counter im Prozessor als Befehlszähler (instruction counter).
Also ein integraler Baustein eines Prozessors ;) .

Dies um zu zeigen was ich gerade mache.

Eins kann ich sagen: Es dauert nicht mehr lange (im Rahmen von einem Monat, wenns gut läuft) und ich habe den kompletten Prozessor aufmodelliert ;) .
Dann kann ich auch sagen, wie viele Transistoren er hat (weil Krishty ja schon gefragt hatte).

Bevor ich Schaltungen mit nDesign modelliere und simuliere, simuliere ich diese mit einer Simulationssoftware, welche Ihr vielleicht kennt: Yenka (früher crocodile-clips).
Einfach mal nach "Yenka" googeln!

Das gesamte Projekt kann noch andauern. Ich schätze 2 bis 3 Jahre.
Aber die lange Zeit wird sich lohnen- denn es ist ja immerhin ein komplett eigener Computer ;) .

Gruss
RedGuy

Re: [Projekt] eigener Computer

Verfasst: 04.09.2017, 19:53
von RedGuy
Hi nochmals !


Jetzt hab ich den elementaren Zähler nämlich ein durch mich modifizieren JK-Master-FlipFlop mit Preset -Möglichkeit
für Yenka ;) . Siehe Anhang.
Befehlszählerelement (1bit)
Befehlszählerelement (1bit)
Gruss
RedGuy