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 - chris12

Seiten: [1] 2 3 ... 7
1
Offtopic / Re: Logisim CPU
« am: 31. July 2013, 02:22 »
Du hast also extra ports an deiner cpu für diese spezielle peripherie? ich würde tatsächlich einen MMIO Design verwenden, sodass du einfach den IO in den speicher einblendest über einen AdressController, der im bestenfall einfach ein multiplexer ist. Je nach andresse kannst du dann ja die peripherie endweder nach deinem design an den bis anschliessen, sodass es einen port als controllpfad gibt und einen als datenpfad, oder aber gleich einen port je peripherie, oder mehr.

aber das ist nur meine idee
2
Das Wiki / Re: EU und Forum
« am: 07. May 2013, 10:29 »
lowlevel.brainsware.org ftw ^^
3
mich verwirrt auch etwas, dass keine bootloader signatur angegeben ist ... sprich 0x55 0xAA
4
Lowlevel-Coding / Re: Wo wird UEFI gespeichert?
« am: 23. February 2013, 00:14 »
um ein extrem sicheres os auf die beine zu stellen schreibe man in die bedienungsanleitung vom computer, dass der stecker nicht in die steckdose soll ...

(offtopic ... sorry, aber ich konnte nicht anders ^^)
5
Offtopic / Re: Logisim CPU
« am: 26. January 2013, 23:19 »
CU, ka, was soll das heißen?

Befehlsdecoder hast du zwei möglichkeiten:
a) alle befehle mittels decodern aufdröseln und hart verdraten, oder
b) mittels microprogrammsteuerwerk die einzelnen leitungen einzeln schalten und alle befehle einprogrammieren
6
Offtopic / Re: Logisim CPU
« am: 15. January 2013, 00:18 »
Rd und Rs ist natürlich jedem überlassen, wie man es nennt, aber ist es nicht sinnvoller Rd als Destination Register und Rs als Source Register zu sehen?
7
Offtopic / Re: Logisim CPU
« am: 14. January 2013, 20:42 »
also wie ich das sehe, hast du ein paar redundante befehle drin, vorallem bei den sprungbefehlen. mit redundante befehle mein ich nicht, dass man ein ldk rd, wert auch durch ein xor rd, rd; addci rd, wert darstellen kann, wogegen aber nichts spricht ;)

jge = jnl
jl = jnge
jle = jng

... liegt an dir die drinzuhalten, ich persönlich würde die durch andere mnemonics im assembler ersetzen, die dann in den selber befehl umgesetzt werden, spart opcodespeicher :D
ansonsten seh ich keine probleme, oh vllt solltest du nop auf opcode 00 legen, es spricht zwar nichts dagegen es auf 59 zu legen, aber ... nungut, ist nur persönlicher geschmack und zudem hat der logiksimulator (logisim) die ramzellen auf 0 initialisiert, desswegen bin ich der überzeugung ... wenn du allerdings microcode steuerung hast und bei opcode 0 deine steuerung zum laden des nächsten befehls liegt, dann solltest du es lassen ... obwohl ist das laden des nächsten befehls, sehen dass der nächste befehl das laden des nächsten befehls ist, nicht nop?

wie dem auch sei, viel spass und mfg :D

PS: ich sollte nach 20:00 keinen kaffee mehr trinken .... obwohl .... eig erst die richtige arbeitszeit :P
8
Offtopic / Re: Logisim CPU
« am: 05. January 2013, 15:53 »
warum baust du nicht erstmal was funktionierendes simples?
9
Offtopic / Re: Logisim CPU
« am: 02. December 2012, 01:09 »
Zitat
Zitat
Oje, dachte wenn man registerwerte in den ram laden möchte wäre das die einfachste möglichkeit. 
Normalerweise nimmt man dafür Instruktionen, also "Kopiere Register X nach RAM-Adresse Y" oder "Nimm das Register Z als Adresse in den RAM und kopiere das, was da steht in das Register X".

wobei das schon ein guter ansatz ist, da er ja die werte irgendwie in den ram bekommen muss ...
allerdings würde dich empfehlen zwei busse zu nehmen, einen internen und einen externen. intern für den datenlauf innerhalb der cpu, also zwischen registern und der alu und einen externen als bussystem zwischen ram, geräten (bei mmio) und cpu

du kannst natürlich auch dein eigenes design wählen.


was du allerdings mit registerbits meinst, ist mir auch noch nicht so ersichtlich. meinst du damit tatsächlich, die codierung der register im opcode? wenn ja, dann brauchst du sowas unbedingt, denn irgendwie muss dein steuerwerk ja wissen, welches der register es wählen soll. es sei denn, du hast nur zwei register, der extrem spezialisiert sind. ....
10
Offtopic / Re: binäre Division
« am: 30. November 2012, 13:00 »
11
Offtopic / Re: Logisim CPU
« am: 27. November 2012, 20:32 »
naja ... so schnell wie der ram halt ist, es kommt auf die implementierung an .... bei mir ist es z.B. so, dass du den Port nur implizit angeben kannst und auch nur in und von registern auf ports schreiben kannst, das heißt es ist schon insofern langsamer, als das du erst zwei register mit den werten laden musst, bevor du schreiben kannst ... beim ram hingegen ist es so gelöst, als das du sowas machen kannst wie const -> [adresse + offset], das kann durch die verwendung des zero registers in const -> [adresse] umgewandelt werden ... aber jetzt wo ich das hier schreibe, weiß ich garnicht mehr so recht, warum ich das mit mmio gemacht hab ... wenn ich ein paar mehr opcodes für die port zugriffe definieren würde, würde es wesentlich eleganter sein. Ich habs halt so gemacht. ... :D
12
Offtopic / Re: Logisim CPU
« am: 27. November 2012, 19:46 »
also die idee scheint mir etwas unverständlich, aber ich hab mich auch nicht tiefgründig eingelesen, aber egal ... wie auch immer, wenn du noch keinen sprungbefehl hast, solltest du unbedingt einen einbauen, da sonst deine cpu nicht turing vollständig ist, aber wie auch immer.
Hmm in und out kannst du auch als memory mapped i/o organisieren, so hab ich das bei meinen entwürfen gemacht, das ist wesentlich einfacher ... ich glaube aber bei meinem neusten projekt hab ich auf eine mischung von beidem zurück gegriffen. Der Bildschirm ist aus geschwindigkeitsgründen in den speicher eingeblendet, genauso wie die fontmap. Rest hängt alles an einem seperaten bus, der aber eigentlich genauso aufgebaut ist, wie der RAM/CPU bus mit adress- und datenleitung.
also so hab ich das gelöst ... es gibt bestimmt noch bessere wege, oder zumindest andere wege.
13
Offtopic / Re: Beichte
« am: 26. November 2012, 12:26 »
Ich meine, es gibt einen guten unterschied zwischen smartphones/tablets und PC's ... das eine kann abgeriegelt sein, da es nur das macht, wofür es spezialisiert wurde, jetzt mal ehrlich, auf tablet und smartphones kann man nicht arbeiten, die wurden für die unterhaltung bzw kommunikation geschaffen und das können sie auch gut .... aber PC's wurden fürs arbeiten gebaut und da ist eine abriegelung hinderlich .... ich meine, wenn ein smartphone offen wäre, dann könnte vieles falsch gehen ... und alte handy's waren auch nicht offen ... also weiter mit der tradition, sie wurden so eingeführt, also geht es auch, dass sie geschlossen bleiben. pc's wurden relativ offen eingeführt, eine zuschnüre, sollte nicht akzeptiert werden ... wenn doch ... ARGH!

ach und ... die kolumne spricht mir aus der seele ... obwohl ich win 8 bisher nicht benutzen musste .... :)
14
Offtopic / Re: Beichte
« am: 24. November 2012, 12:22 »
Betonung liegt auf "noch" ;) .... aber nunja, ich würde mich über weitere Nutzungsberichte freuen, und das nicht nur, weil es mich interessiert, sondern auch, weil ich weitere Hass- und Hetzreden schreiben will xD
15
Softwareentwicklung / Re: kprintf %d usw ersetzen
« am: 14. November 2012, 20:56 »
sieht fast so aus, als wenn du dezimalzahlen mit hexadezimalen kennung schreibst ...
16
Softwareentwicklung / Re: kprintf %d usw ersetzen
« am: 11. November 2012, 21:39 »
ah ... der nachteil wenn man von einer sprache mit laufzeitunterstützung auf eine ohne umdenken muss ;) ... aber danke für die erklährung :D
17
Lowlevel-Coding / Re: kprintf - Steuerzeichen
« am: 11. November 2012, 20:04 »
mir kommt es etwas spanisch vor, dass du die variablen x, y, sowie video mit in deiner funktion hast ....
18
Softwareentwicklung / Re: kprintf %d usw ersetzen
« am: 11. November 2012, 19:52 »
@Jidder hmm laut http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/sizeof.html sollte sizeof so funktionieren ... aber ich nehme einfach mal an, dass ich da was falsch interpretiert hab :D
19
Softwareentwicklung / Re: kprintf %d usw ersetzen
« am: 11. November 2012, 13:16 »
Ok, mir fällt gerade auf, intToChar wäre schonmal blödsinn, eher intToStr xD ... und um es ganz konform zu machen itoa(int data, char[] buffer, int base)

wie das aussehen könnte öhm:
void itoa(int data, char[] buffer, int base)
{
    char[] numc = {'0','1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E','F', ..., 'Z'};
    buffer[sizeof(buffer)-1]='\0';
    int i;
    for(i=sizeof(buffer)-2, i>=0,i--)
    {
        buffer[i]=numc[data%base];
        data=data/base;
    }
}

ist ungetestet und frei aus dem kopf notiert, zudem möchte ich hinzufügen, dass ich recht wenig bisher mit C programmiert habe, also ist der code wahrscheinlich an irgendeiner stelle falsch (btw ... im array numc soll '...' durch die aufzählung von 'G' bis 'Y' ersetzt werden, war nur zu faul um das alles hinzuschreiben) der code sollte dir jede int zahl zu einer basis deiner wahl ausgeben, sogar zu 1 oder 0, was keinen sinn macht und zu 0 sogar fatal wäre! also abfrage reinhauen :) )
ähm ... viel spass.
20
Softwareentwicklung / Re: kprintf %d usw ersetzen
« am: 11. November 2012, 12:16 »
in dem teil wo du die int abfrags, sieht zwar etwas kaputt aus, switch würde sich wahrscheinlich besser machen, sollte aber funktionieren, muss du noch eine funktion einbauen wie intToChar(int i, int base), das dir ein char array oder anderes construct zurück gibt, dann kannst du einfach sowas machen wie kprint(intToChar(iArg, 10)); machen, musst dann aber danach aufpassen, dass du das i nochmal manuell inkrementieren musst.
Zudem musst du noch irgendwie abfangen, ob ein '%' am ende des strings steht ...

korrigiert mich, wenn ich was falsches gesagt hab :)

mfg
Seiten: [1] 2 3 ... 7

Einloggen