[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.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] eigener Computer

Beitrag von Chromanoid »

Jo, das attachment muss im Beitrag angezeigt werden, damit es im Showroom landet. Siehe https://zfx.info/viewtopic.php?f=9&t=11 ... 777#p13777
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 !

Hab für die Planungsphase auf physical layout Ebene UND HERSTELLUNG des Prozessors eine eigene Chip-Design Software geschrieben ;) .

Ein Screenshot ist beigefügt.


Damit lässt sich der Prozessor auf Transistorebene aufplanen!

Mein Ziel ist es auch einen Simulator und einen sogenannten silicon compiler für die Software als Erweiterung zu schreiben.
Aber soweit mal sogut.


Außerdem habe ich beschlossen, dass es ersteinmal keine Hardware-Geteilt-Einheit für den Prozessor geben wird- sondern eben software per compiler der Programmiersprache "Arise".
Hardware Geteilt ist nämlich verdammt aufwendig.

---
Die Chip-Design software beinhaltet eine third-party library für die GUI (flow-chart). Das Ganze hat natürlich wieder einen riesen Spaß gemacht zu programmieren.
Wer die third-party-component für Flussdiagramme unter .NET mal ausprobieren möchte: http://www.lassalle.com
Es sind compilierte Demos, sowie Programmbeispiele und eine Doku dabei.

Die Software wurde unter dem guten alten Visual Studio 2005 Express Edition und .NET Framework 2 entwickelt ;) .


Gruss
RedGuy
Dateianhänge
screenshot chip-design software "nDesign"
screenshot chip-design software "nDesign"
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 !

Die sound-chip firmware ist fertig programmiert 8-) !

Danke an die Unterstützung von zfx in den Thread https://zfx.info/viewtopic.php?f=7&t=4262&p=55718 ;) .

Hier die Daten:

sound package sound processing data:
-62bits absolute amplitude (sample) encoding and one bit amplitude sign
-open-end breadth resolution (just depends up to the velocity of internal sound processing; instead of "just" 192 or 320 kbitps)
-nearly unlimited number of channels
-a large circular sound buffer
-would overwrite data in buffer if overrun (which should never happen because of chip hierarchy)


Habe einen 62bit DAC im Einsatz !

Mit Tricks könnte ich die Sample resolution auf meine 127bits erhöhen :P ! Mein Prozessor rechnet ja mit 128bits.

Falls Ihr Fragen habt, als her damit. Den vollständigen Firmware code werde ich aus Urheberrechtsgründen leider nicht veröffentlichen.

Gruss
RedGuy

PS: Jetzt gehts an die PS/2 chips.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von Schrompf »

RedGuy hat geschrieben:-62bits absolute amplitude (sample) encoding and one bit amplitude sign
Warum nur 62+1 bits? Wegen des verwendeten DACs? Und kann der dann auch -1..+1?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
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 !
Hallo Schrompf!

Also *nur* kann man nicht sagen. Das herkömmliche .wav file kann *nur* 16bit.
Siehe https://en.wikipedia.org/wiki/Audio_bit_depth.


Das Vorzeichen, geschieht über die Ansteuerung des DACs und eine zusätzliche Hälfte des DACs.
Die eine Hälfte vom DAC macht 62bits Plus, die andere 62bits Minus 8-) .

Gruss
RedGuy
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von Schrompf »

RedGuy hat geschrieben:Also *nur* kann man nicht sagen. Das herkömmliche .wav file kann *nur* 16bit.
Was bringt's Dir, wenn alle Quellen nur 16bit liefern? Aber das interessiert mich eigentlich nicht. Ich meinte nur, dass die typische Integer-Größe 64bit sind, Du dagegen mit Vorzeichenbit nur 63bit benutzt. Warum?

Das Vorzeichen, geschieht über die Ansteuerung des DACs und eine zusätzliche Hälfte des DACs.
Die eine Hälfte vom DAC macht 62bits Plus, die andere 62bits Minus 8-) .
Dann ist das ein 63bit DAC, den Du mit ner Offset-Spannung zentrierst? Oder sind das zwei 62bit-DACs, die Du gegeneinander ansteuerst?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
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 !

Also ich habe diese Bit-tiefe gewählt, weil mein Prozessor 62bits Vorkommastellen in Vorzeichen behafteten Variablen vorsieht.
Ich habe quasi keine Vorzeichen behafteten integers... so ist das halt.


Beim DAC sieht mein design zwei 62bit DACs vor, welche ich mit zwei unterschiedlichen Vorzeichen an Spannungen bediene 8-) .

Gruss
Red

[EDIT]:
Die hohe bit-Breite ist praktisch auch über mein Chip-Design Programm https://zfx.info/viewtopic.php?f=10&t=4 ... 726#p55548 realistisch!!
Ich könnte wie schon erwähnt mit Tricks sogar noch auf 127bits hoch gehen.
Zuletzt geändert von RedGuy am 11.07.2017, 12:25, insgesamt 1-mal geändert.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von xq »

Wofür brauchst du eigentlich 63 Bit PCM-Daten bei Audio? Da hast du bei quasi egal welcher Spannung eine Auflösung im Attovolt-Bereich... Deine Schaltung und deine Kabel werden irgendwo im Millivolt-Bereich rauschen... Hast also nix dabei gewonnen
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
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 MasterQ32!

Meine Philosophie, sieht vor, dass es darauf ankommt ;) ...

Gruss
Red
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von xq »

Worauf ankommt?
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
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 !

Also meine Philosophie besagt, dass ich alles so Natur getreu (realistisch) wie möglich umsetze.

Ich denke also, dass es auf eine möglichst hohe Audio bit depth (sample resolution) ankommt - in meinem Fall eben 63 anstatt nur 16 bits.

Gruss
Red


PS: mein Software-Geteilt für meine Programmiersprache ist akkut in Arbeit. Muss nur noch debuggen und dann werd' ich mal den code hier veröffentlichen 8-) !
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von Zudomon »

Bild
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] eigener Computer

Beitrag von Krishty »

RedGuy hat geschrieben:Falls Ihr Fragen habt, als her damit.
Bei wie vielen Transistoren bist du jetzt auf den einzelnen Chips bzw. allen zusammen?
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 !

Danke für die Antworten.

Die Anzahl der Transistoren kann ich erst dann sagen, wenn ich konkrete Daten für die Produktion habe.

Konkret bedeutet das: wie viel Speicher kann ich auf einen Chip-Die packen.
Dies hängt von der Integrationsdichte ab.

Das werde ich erst ganz zum Schluss managen.

Ich hab nämlich die Möglichkeit ganz dynamisch auf die Integrationsdichte zu reagieren und unterschiedliche Speichergrößen zu fertigen.
Das Ganze ist nämlich in meiner Chip-Design software automatisiert.
Ich kann dort sagen: Stelle mir einen 1Mega-Wort großen Speicher her. Und er platziert die Transistoren automatisch ;) .

Gruss
RedGuy
mrz
Beiträge: 79
Registriert: 07.08.2008, 14:34

Re: [Projekt] eigener Computer

Beitrag von mrz »

Stellt sich nur noch die Frage wann ich meine AMD und Intel Aktien abstossen soll?

Im Ernst:
Auch wenn ich in diesem Thread hauptsächlich nur Bahnhof verstehe bin ich total gespannt wie sich dein Projekt entwickelt.
Wäre toll wenn Du auch hier jeweils neue Fotos verlinkst oder hier zumindest hinweisen würdest,
dass es auf deiner Homepage neues Material gibt.
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: 8227
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: 8227
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