Az emulátor online demójának kipróbálásához tippek itt.
- A hozzászóláshoz be kell jelentkezni
- 5435 megtekintés
Hozzászólások
Valaki el tudná magyarázni hogy ez hogyan működik úgy, hogy egy óvodás szintjén lévő (én) is megértse? Valahogy nem tudom összeilleszteni a JS szintjét a hw emulátor szintjével.
- A hozzászóláshoz be kell jelentkezni
egyszeru pelda hw emulaciora:
http://nxr.netbsd.org/xref/src/sys/dev/nand/nandemulator.c#370
bar ez nem js, de majdnem barmiben lehet ilyet irni, gyakorlatilag megirod ugyanazt az allapotgepet, amit a hardver implemental
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Szerintem ez nem gate level emulator.
Kapu szinten sokkal lassabb lene.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Nem "szerintem" kérdése, bele kell nézni a forrásba :-)
Nem az.
- A hozzászóláshoz be kell jelentkezni
http://s-macke.github.io/jor1k/js/worker/cpu.js
Ez nem gate level. Innen nezd: 'switch ((ins >> 26)&0x3F)'.
Az OpenRisk projectnek van egy emulatora ami szinten nem gate level.
Az hogy az OpenRisk -nak van verilog kodja egy dolog.
A verilog onmagaban, is magasabb szintu , mint a gate szint ,kozelebb van a register-transfer level-hez, de vannak toolok
amik alacsanyobb szintu dologga alakitjak, (pl.: klassikus logikai aramkori elemek (pl.: szamlalo),
logikai kapuk (pl.: NAND), lekepezes FPGA vagy ASIC elemekre..)
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Pont nekem mondod? :-)
Elég régóta használom az OpenRISC-et FPGA-n :-)
(amúgy belenéztem a forrásába, előző hozzászólásom emiatt született.)
- A hozzászóláshoz be kell jelentkezni
van egy, a WebGL miatt bevezetett adattípus, az Int32Array (meg talán van Int64Array is).
Ez típusos, ismert méretű és mivel egy emulátornak nem igazán kell foglalkoznia az adat valódi típusával, viszont a fordító (mert a közhiedelemmel ellentétben a JS-be JIT van) is szépen rá tud feküdni, amíg nem lép ki az összeadás-kivonás-shiftelés-szorzás bűvköréből, így effektív kapsz egy C kódot rá.
Nyilván amint vegyes adattípusokkal (pl. HTML DOM node-ok piszkálásával) kell foglalkozni, rögtön esik a teljesítmény, de emulációra tökéletes, és szinte tuti erre épül az Emscripten is, ami az LLVM JS targetje.
- A hozzászóláshoz be kell jelentkezni
cöhh nem is tudtam hogy van js backend llvm-hez
mindenesetre köszi, hogy felhívtad rá a figyelmem, mert épp a napokban gondolkodtam rajta, hogy írni kéne :P
--
CyclonePHP
- A hozzászóláshoz be kell jelentkezni
És lehet rajta javascriptet futtatni amiben indíthatnék egy OpenRisc emulátort...?
- A hozzászóláshoz be kell jelentkezni
Meg olyan gép is jött a boltba
Amelyik azt a tojást tojja
Amiből egy kis gép kikel
És szól, hogyha neki is tojni kell
[src]
- A hozzászóláshoz be kell jelentkezni
Nem obfuszkált a forrása:
http://s-macke.github.io/jor1k/js/worker/worker.js
és társai
- A hozzászóláshoz be kell jelentkezni
http://s-macke.github.io/jor1k/js/worker/cpu.js
http://s-macke.github.io/jor1k/js/worker/ram.js
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Elsőre azt hittem, a forráskód 1K, és csettinteni akartam.
- A hozzászóláshoz be kell jelentkezni
Egy kis teszt:
bc -l
2^10000
quit
bc -l
2^10000
Ekkor:
4.2-4.5 millió IPS Chrome 27
6.5-7.5 millió IPS Opera 12.15
9.1-9.5 millió IPS IE 10
15-15.7 millió IPS Firefox 22
Core i5-2400 @ 3.10 GHz
Windows 7 Professional 64 bit
- A hozzászóláshoz be kell jelentkezni
Detto Windows 7, Firefox 22, de laptop, Core i5-2430M, és felmegy 27 millióig, wtf?
- A hozzászóláshoz be kell jelentkezni
Ugyanúgy mérted mint én? Boot folyamán nekem is felugrik magasra, de bc számítása alatt meg sem közelíti a te általad mért értéket.
Ez érdekes..
- A hozzászóláshoz be kell jelentkezni
Probald ki a 'yes' parancsot.
Valoszinuleg, ha nem csinal semmit az kevesebb host CPU orjaelbol meg lehet csinalni.
A kozolra iras mar valami, ami miatt kevesebb ido jut a cpu emulalasara.
Ha dragabban emulalhato utasitasokat hasznalnal az is latszik.
Valoszinuleg intenzivebb memoria kezeles is 'lasit'...
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
OpenSSL-lel lehetne jol megmerni...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ilyet használ valaki? Mert az ilyen böngészőbe bújt emulátorok nagyon jópofák, de érdekelne, hogy használja esetleg valaki-e őket "élesben".
"Belépés díjtalan, kilépés bizonytalan."
- A hozzászóláshoz be kell jelentkezni
Arra jó, hogy ha gyorsan kell egy linux sandbox amit szabadon szétbarmolhatsz. Gyorsabb, mint elindítani egy rendes linuxot vmware-ben, ráadásul telefonon is elindíthatod (igaz akkor nem biztos, hogy gyorsabb :)).
- A hozzászóláshoz be kell jelentkezni
Ertem, van benne racio, koszi.
"Belépés díjtalan, kilépés bizonytalan."
- A hozzászóláshoz be kell jelentkezni
Tetszett az a framebuffer a terminál mellett, de az nem tetszett, hogy az fbinfo-n kívül semmivel nem tudok bele értelmeset rajzolni. Mivel a framebufferre közvetlenül lehet írni a /dev/fb0-n keresztül, úgy döntöttem írok rá egy raytracert shellben. Aztán végül bc-ben írtam, egyedül a text-binary átalakítás hárult a shellre, mivel fogalmam sincs hogyan lehetne bc-ből bináris outputot kicsikarni.
A kód:
bc -lq raytracer.bc | while read line; do printf $line; done > /dev/fb0
Renderelt képet nem adok, akit érdekel futtassa le, pár óra alatt lefut. :)
A következő projekt: animáció dd seek segítségével.
- A hozzászóláshoz be kell jelentkezni
Linkelhetnél képet, ctrl+v -t nem eszik, tcp stack értelemszerűen nem megy, arra még nem jöttem rá hogyan lehet bele bármit is paszírozni, kézzel meg nem pötyögöm be:)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Ppm outputot lehet vele csinálni mindössze két sor átírásával, és akkor megnyitja a display. :)
Egyébként az nekem is probléma volt, hogy nem tudok másolni bele, de muszáj volt élesben is kipróbálnom, szóval végül csak begépeltem. Cat-tel, mert bár van vi, de az kicsit bugzik, meg amúgy se szeretem.
Szerk: oké, csináltam egy valós rendert, kíváncsi voltam pontosan hány óra kell hozzá. Persze a time kevesebbet mutat, kb. 2.23x gyorsabban jár az idő valójában, vagyis a renderhez kicsit több, mint 5 és negyed óra kellett.
- A hozzászóláshoz be kell jelentkezni
ez ilyen: fuck yeah:D
Egyébként meg igen, én vagyok a sügér mert eszembe sem jutott lokálisan futtatni:)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni