[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.

Re: [Projekt] eigener Computer

Beitragvon RedGuy » 11.07.2017, 19:52

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/ncoreshofmann/home/electro-and-information-technology/events/arise/system%20software%20Nat%C3%BCrlichezahl%20division%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 :) .
RedGuy
Manuel Hofmann
 
Beiträge: 109
Registriert: 17.09.2002, 17:27
Wohnort: Rottweil

Re: [Projekt] eigener Computer

Beitragvon DerAlbi » 11.07.2017, 22:02

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.
DerAlbi
 
Beiträge: 163
Registriert: 20.05.2011, 05:37

Re: [Projekt] eigener Computer

Beitragvon RedGuy » 12.07.2017, 15:00

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
RedGuy
Manuel Hofmann
 
Beiträge: 109
Registriert: 17.09.2002, 17:27
Wohnort: Rottweil

Re: [Projekt] eigener Computer

Beitragvon DerAlbi » 12.07.2017, 22:49

:-| 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.
DerAlbi
 
Beiträge: 163
Registriert: 20.05.2011, 05:37

Re: [Projekt] eigener Computer

Beitragvon Krishty » 08.08.2017, 21:32

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
Benutzeravatar
Krishty
 
Beiträge: 5874
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: [Projekt] eigener Computer

Beitragvon RedGuy » 11.08.2017, 19:42

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
RedGuy
Manuel Hofmann
 
Beiträge: 109
Registriert: 17.09.2002, 17:27
Wohnort: Rottweil

Re: [Projekt] eigener Computer

Beitragvon Krishty » 11.08.2017, 22:56

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
Benutzeravatar
Krishty
 
Beiträge: 5874
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Vorherige

Zurück zu Vorstellungsbereich

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron