ENTERPRISE KLUB
2019. május 25., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: EP 2.0? (Read 7064 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Safari Safari
    • View Profile
    • http://lgb.hu/
Re: EP 2.0?
« Reply #30 on: 2012.March.20. 17:33:18 »
Kezdem kapizsgálni a PC-s világ Pentium nevû termékeit.

A következõ érdekességet találtam: Pentium 3 processzornál az adatbusz 64 bites. Az SD-RAM memóriafoglalaton 8 (vagy 16db) chip található. Egy órajelciklus alatt (mondjuk legyen a memória busz 133Mhz-es) ezzel a processzor 8Byte-ot képes kiolvasni a saját cache (gyorsító) memóriájába.

 Emiatt hiányzik is a címbusz alsó három bitje. Emiatt van az, hogy kivételt generál az, ha mondjuk egy utasítás nem 0h vagy 8h címen kezdõdik és nincs benne a gyorsítótárban, tehát a memóriából kell kiolvasni, mert akkor mind a 8 byte-ot ki kell hozzá olvasni. Emiatt a gépi kódú rutinokat optimalizálni kell, tehát ha lehet folytonos legyen az adatok elhelyezése. Ugráskor szintén be kell tartani a 0h vagy 8h-ra végzõdõ címet. Ezzel igaz, hogy memóriát lehet veszíteni, de jelentõs gyorsulást lehet tapasztalni.

 Arra gondoltam, hogy az EP 2.0-nál ezt a technikát, miszerint az adatbusz mondjuk 32 bites, alkalmazhatnánk, mert akkor a memóriaelérési idõ drasztikusan lecsökkenhetne, így a processzor sebessége növekedhetne.
 Még mindig fontosnak tartom a belsõ gyorsítótár (cache) létrehozását, hogy a perifériák közvetlen memóriahozzáférése jóvoltából tovább gyorsulna a rendszer.
 Képzeljetek csak el egy 32 bites regiszterekkel ellátott 400Mhz-es Z80 kompatibilis processzort, mely bonyolult matematikai mûveleteket is képes elvégezni a beépített matematikai processzorával...


"Kedvenc" peldam a C64DTV hasznal ki egy erdekesseget: ugye az egesz egy ASIC-ban van implementalva, SDRAM-ot hasznal (2Mbyte), memoriavezerlo minden ASIC-ban integralva, abbol mar RAS/CAS jel jon ki, stb (kulon "jon ki" a flash fele a cim, ha a keres arra vonatkozik). Ott ugy van pl, hogy "burst" uzemmodot ha engedelyezed (persze akkor innentol timing az nem C64 compatible erosen) akkor kihasznalja azt a feature-t, hogy 32 bitet olvas egyszerre (4 byte), es ha ebbe pl belefer tobb opcode, akkor nem is kell kulon byte-onkent olvasnia: gyorsabb. Sot, ha a skip-cycle uzemmodot engedelyezed, akkor egy orajel ciklus alatt elmleletben vegre tudja hajtani az osszes utasitast ami belefer abba a 4 byte-ba, felteve persze ha mas memoria I/O nem kell ehhez. Na persze az "egy orajel ciklus alatt" az kisse megteveszto ott, mivel az ASIC maga ott AFAIK 32MHz-en ketyeg, csupan ugye az "emulalt" CPU-ra jon ki a kb 1MHz "orajel" (mivel kozben mas is van, blitter/DMA, VIC-II/SID emulacio stb stb). Vegulis ez is "cache" (code cache) bar igen kicsi, 4 byte :-P Viszont lehet a kodot optimalizalni, hogy pl 4 byte hatarra essen a cucc, stb.