[Projekt] eigener Computer

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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 :) .
DerAlbi
Establishment
Beiträge: 269
Registriert: 20.05.2011, 05:37

Re: [Projekt] eigener Computer

Beitrag 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.
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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
DerAlbi
Establishment
Beiträge: 269
Registriert: 20.05.2011, 05:37

Re: [Projekt] eigener Computer

Beitrag 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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag 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
Antworten