Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - TomCat

Seiten: [1] 2
1
Softwareentwicklung / unreal mode über 2 GB
« am: 14. February 2020, 10:15 »
Hallo,

ich arbeite grad im "Unreal Mode" und im Rechner sind physikalisch 4GB installiert.
der Grafikbereich wird ab 4,177.... GB eingeblendet und ist auch zugreifbar.

jetzt scheint es aber so, dass ab 2GB kein Speicher mehr zugreifbar ist, obwohl ja 4GB installiert sind.
D.h. z.B. an die Adresse 2.400.000.000 kann man keine Werte ablegen.


Ist das normal, oder mache ich da was falsch?

THX TomCat

BTW: der thread sollte wohl besser ins lowlevel-coding Forum...
2
Lowlevel-Coding / Antw:3te wurzel berechnen
« am: 03. December 2019, 09:14 »
Danke erstmal für die umfangreiche Antwort.

ich habe vergessen zu erwähnen, dass es um x86 ASM Programmierung geht.

mir geht's hier nicht Geschwindigkeit, sondern darum dies mit der FPU zu lösen.
bzw. wie macht dies ein Compiler?

 
3
Lowlevel-Coding / 3te wurzel berechnen
« am: 02. December 2019, 09:43 »
Hallo,

für die Quadratwurzel gibt es ja den FPU -Befehl: fsqrt.

Wie kann man aber z.b. die 3. Wurzel (Kubikwurzel) berechnen?


THX
TomCat
4
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 07. February 2019, 09:58 »
Hi,

danke für die Antworten.  :-)

Mein eigentliches Problem ist, dass ich in auf einem PC (IA32) ohne Betriebssystem !, keine Lösung habe wie ich schnell Daten von externen Geräten einlesen kann.
Ausser diese langsame Port IO.  Ich bin so zwar extrem schnel was interne Kalkulationen anbelangt, aber wie bekomme ich schnell Daten in den PC??

Gibt es da andere Möglichkeiten?
5
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 04. February 2019, 10:59 »
Danke für die Antwort,


Device Code          :   Parallel Controller
ID                        :   Vendor = 1415H    Device = 8403H
Resources             :  [I/O]  [Memory]

   I/O Address       :   0000DC00H  0000D880H   0000D800H
 Memory Address  :   F7FFF000H
   Interrupt           :   IRQ10           

ich habe mal versucht einfach das Status/Steuerbyte über die Memory Address zu lesen. Also einfach
F7FFF000h + 1 für das Statusbyte.
Das funktioniert gar nicht. :-(

Wie kommt man denn mit Memoryzugriff statt Port-IO auf die Inputs?

Thx
TomCat         
6
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 02. February 2019, 12:23 »
Mit diesem Port i/o war ich nie gluecklich. Beim 286 er mag das wohl schnell gewesen sein. Aber bei den heutigen Prozessoren hat man das Gefuehl, es haette jemand die Bremse reingehauen. Was anderes noch : Meine Grafikkarte wird auch im hohen 32 bit Speicherbereich eingemappt. Etwa so ab adresse 4 Mrd. Was ist, wenn ich im unrealmode 4GB physikalischen Speicher zur Verfuegung habe.  Wie geht das dann, ich meine, es waere ja dann keine Adressen mehr fuer das Mapping vorhanden??

Thx TomCat
7
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 01. February 2019, 09:43 »
Zitat
Mit ein bisschen Glück hast du dort die gleichen Register memory-mapped nochmal. :-)

Ich habe im Moment nur 2GB im PC. Die Adress-Angabe ist aber mit F7FFF000H sehr hoch.
d.h. hier ist physikalisch gar kein Speicher mehr vorhanden.
Wie ist das dann zu verstehen?

8
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 31. January 2019, 11:27 »
Danke,

ich habe grad eben mal eine PCI-Parallelportkarte eingebaut, und mir über PCIVIEW.EXE angeschaut.
Da bekomme ich folgende Daten:

Device Code          :   Parallel Controller
ID                        :   Vendor = 1415H    Device = 8403H
Resources             :  [I/O]  [Memory]

   I/O Address       :   0000DC00H  0000D880H   0000D800H
 Memory Address  :   F7FFF000H
   Interrupt           :   IRQ10             

Wenn jetzt die Adress 0000DC00H nehme kann ich auf die 3 Register(DatenByte, Druckerbyte, Steuerbyte)
zugreifen. Also mit in /out Assembler-Befehlen.
Das geht halt relativ langsam.

Was hat es mit dieser Memory Address auf sich?

Ich möchte noch dazusagen, dass ich im UNREAL-Mode bin, d.h. auch auf den 32-Bitadress-Raum zugreifen kann.

THX
TomCat
9
Softwareentwicklung / Antw:Parallelport mit DMA hereinlesen
« am: 31. January 2019, 09:19 »
Hi,

danke erstmal für die Antworten.  :-)
Eigentlich geht es mir nicht direkt um den Parallelport. Es ist nur so dass digital i/o-Karten oft genau diesen Baustein benutzen. Aber es scheint so dass dieses Problem eher nicht zu existieren, da
diese Karten ein MMIO nicht unterstützen. Oder taeusche ich mich da.?
Wenn man sehr schnell viele Ports lesen muss, schafft kann halt kaum hohe Abtastfrequenzen.

Thx TomCat
10
Softwareentwicklung / Parallelport mit DMA hereinlesen
« am: 06. November 2018, 14:17 »
Hallo,

ist es möglich die Inhalte der Parallelport-Register (Statusbyte/Steuerbyte) direkt über DMA einzulesen, oder geht das grundsätzlich nur über die Portadressen?

THX
11
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 27. February 2017, 09:11 »
Hast du da auch den Code dazu?
Wäre sehr interessant. :-)
12
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 24. February 2017, 13:31 »
hmmm, ja gut aber alles nicht wirklich schneller also die 50 Takte der FPU.

10 Takte auf einem IA-32 (x86) sollten doch irgendwie möglich sein...

Oder gehört das ins Reich der Träume. :-D
13
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 23. February 2017, 11:05 »
Lineare Interpolation ist nicht: (a+b)/2   !!

Lineare Interpolation berücksichtigt wie nahe der Wert an den jeweiligen Grenzen liegt.
Und je nachdem wird er dann gewichtet.
Darum ist da eine Division mit drin und paar Subraktionen.

14
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 21. February 2017, 11:09 »
Für was das gut sein soll?
hat ja keiner danach gefragt. :roll:
Also es geht um das erkennen von komplexen Datenkorrelationen in einem KI-System. Und speziell hier um das Erkennen von unter/über-linearen Abhängigkeiten von Daten. (Das mal vorweg) :-)

Die FPU braucht ca. 50-60 Takte für eine Wurzelberechnung. Dafür ist das Ergebnis exakt und auch richtig gerundet.
und bei mir geht's nicht um Genauigkeit, da es eher um das Ermitteln von Wahrscheinlichkeiten geht.

Die geteilte LUT - Funktion wäre die schneller als 50 Takte? Sie müsste ja auch bedingte Sprünge enthalten und Zugriffe auf den Arbeitsspeicher. Die Interpolation benötigt auch ein paar Rechenoperation auch mul und div, was nicht gerade schnell ist.
Oder täusche ich mich da?
15
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 20. February 2017, 13:10 »
und wie sähe dann deine Rechnung aus mit etwa 22% Abweichung?
16
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 20. February 2017, 10:48 »
ja das Verfahren von John Carmack...

das mit einer Lut und einer linearen Interpolation funktioniert ganz gut bei Sin/Cos. da diese Funktionen relative linear sind.
Exponential /Wurzelfunktionen sind aber stark unter/über-Linear, und wenn man einen Eingangswertebereich von 32-Bit hat was mehr als 4 MRD. sind, wird es schwer. Nehmen wir mal an, wir nehmen nur jeden tausendsten Wert (immer noch 4 Mio-Werte) in die LUT auf
und interpolieren dazwischen, bekommt man rein gar nix mehr Vernünftiges. Man wird z.B. zwischen 0 und 1000 interpolieren.
Und eine LUT in der Größe ist auch nicht zu empfehlen weil sie das gesamte Caching durcheinanderbringt und in allen Ecken und Enden Cache-Misses erzeugt.

Ich brauche etwas, dass mir im Schnitt die Wurzel in 10 Takten berechnet, d.h. auf einem 3GHz Rechner 300 Mio. mal pro Sekunde.
mit den Voraussetzungen, 32Bit. Eingangsbandbreite mit (logischerweise) 16 Bit Ergebnisbandbreite.
und einer maximalen Abweichung von 10-15%. Wichtig ist vor allem, dass die Ergebnisse stetig sind, d.h. nicht irgendwo ein kleinerer Eingangswert ein größeres Ergebnis liefert als ein größerer Eingangswert.


 


17
Softwareentwicklung / Re: Quadratwurzel schnell berechnen
« am: 17. February 2017, 10:52 »
naja das iterationsverfahren muss schon 3 bis 4 mal durchgeführt werden. Das sind einige Maschinenbefehle die da durchgejagt werden müssen. Blöderweise auch Divisionen die relativ langsam sind. Das wird dann langsamer als gleich die FPU zu bemühen.

 :-(
18
Softwareentwicklung / Quadratwurzel schnell berechnen
« am: 16. February 2017, 15:10 »
hallo,
ich möchte die Quadratwurzel aus einer 32-bit integer Zahle berechnen.
Z.B. aus 50 wäre die Wurzel dann 7.

Mir geht es hier nicht um Genauigkeit. Eine Abweichung von 10-15 % vom eigentlichen Wert nehme ich in Kauf.
Es geht nur um maximale Geschwindigkeit !!
Wie würde man da am besten vorgehen?

THX
TomCat
19
Lowlevel-Coding / Re: VESA Grafik-Modi
« am: 15. February 2017, 14:40 »
ja geht so schnell. mit einer 3 GHZ CPU und einer PCI-Express Karte und linearen Frame-Buffer vorausgesetzt.
Man überträgt per CPU ja immer 32-Bit. Also ein Maschinenbefehl ein 32-Bit Transport, was einem Pixel entspricht. Das gilt aber nicht für alle Grafikkarten. Habe auch schon nur 60 Mio-Pixel /Sekunde bei einer PCIe-Karte gemessen.
20
Lowlevel-Coding / Re: VESA Grafik-Modi
« am: 09. February 2017, 10:41 »
Wo ich die Zahlen her habe?
ich habe mir über viele Jahre ein Programm für embedded Systems geschrieben, das nebenbei bei der Initialisierung die Hardware auf seine Performance hin testet. Alles ASM übrigens. Und da habe ich als Maximalwert mit einer MSI_PCIe Grafikkarte eben diese 130 Millionen Pixel Schreibgeschwindigkeit gemessen. Lesen interessiert mich nicht. Macht ja wenig Sinn. Es würde aber Sinn machen, wenn man Speicherbereiche innerhalb des Grafikkarten-RAMS verschieben könnte. Z.B. Texturen von Ziffern oder kleinere Bilder in den sichtbaren Bereich blitten. 

Aber leider weiß ich nicht wie das gehen könnte...
 
Seiten: [1] 2

Einloggen