Go to the FreeLists Home Page Home Signup Help Login
 



Browse zxspectrum: This Month's ArchiveMain Archive PageRelated postsPrevious by DateNext by Date

[zxspectrum] Re: Scheda Ethernet

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 27 Apr 2008 01:36:25 +0200
On Saturday, April 26, 2008 9:48 PM [GMT+1],
Paolo Basenghi <p.basenghi@xxxxxxxxx> wrote:

Anche considerando un "vecchio" Pentium a 1 Ghz, e considerando un
pacchetto ICMP al secondo generato dal "pingante", la nostra
scatoletta nera preferita ha il tempo di eseguire al massimo 3
milioni e mezzo di istruzioni macchina tra un pacchetto e l'altro,
ciascuna di queste operante al massimo su un byte, mentre il Pentium
ha il tempo di eseguire al massimo 1 miliardo di operazioni macchina,
ciascuna operante potenzialmente su 4 byte. Quindi risulta un fattore
mille di differenza (un po' di più in realtà), cioè nel tempo che lo
specrum impiega per leggere il primo byte dell'header ICMP, il
pentium riesce a fare mille operazioni equivalenti.
Mettiamo pure che Windows XP sia complesso, però....

Si, ammetto che il pentium non scherza, pero` guarda questi dati:

quello che segue e` un ping che ho appena fatto fra due macchine windows: ci sono 6 bytes di mac address destinazione, 6 mac address sorgente, 14 bytes di pacchetto IP vero e proprio (di cui gli ultimi due bytes, ovvero A0 1E sono il checksum), poi segue l'indirizzo IP sorgente (192.168.0.3), IP destinazione (192.168.0.1), il codice del pacchetto (08 = ping request), qualche altra menata ed infine un po` di bytes (lettere abcdefg....) che la macchina pingata dovra` rispedire indietro:

00 11 D8 59 AC 32 00 50 04 67 F1 79 08 00 45 00
00 3C 19 4E 00 00 80 01 A0 1E C0 A8 00 03 C0 A8
00 01 08 00 3F 5C 02 00 0C 00 61 62 63 64 65 66
67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76
77 61 62 63 64 65 66 67 68 69

...e questa e` la risposta: i due mac address invertiti (infatti bisogna rispondere a chi ha mandato la richiesta), struttura abbastanza identica a prima, codice del pacchetto = 00 (ping reply) seguito dallo stesso blocco dati (abcdefg....).

00 50 04 67 F1 79 00 11 D8 59 AC 32 08 00 45 00
00 3C 43 8E 00 00 80 01 75 DE C0 A8 00 01 C0 A8
00 03 00 00 47 5C 02 00 0C 00 61 62 63 64 65 66
67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76
77 61 62 63 64 65 66 67 68 69

Non calcolo quanti cicli macchina impiega uno Z80 programmato in assembler ad interpretare e rispondere ad una richiesta del genere, ma penso che sia nell'ordine di grandezza di alcune centinaia di microsecondi. Ovvio che poi bisogna vedere quanto e` efficiente il trasferimento da e verso l'hardware, ma si stava facendo una mera considerazione sulla potenza di calcolo di un 8 bit.

Aggiungo anche che rispondere a un ping è una cosa, ma immaginate un
po' il nostro Speccy alle prese con una conversazione HTTP, per
esempio servire la home page (e solo quella) di World of Spectrum! Di
certo non ci si può giocare ad Atic Atac nel frattempo!  :-)

Il problema a quel punto diventa l'eventuale collo di bottiglia rappresentato dalla lettura dei dati da trasmettere, alla fine il grosso del lavoro consiste nello spostamento di dati fra una memoria di massa ed il chip ethernet. La capacita` dello Z80 a 3,5MHz non e` poi cosi` schifosa, considera che un gommoso con la zxmmc o zxmmc+ legge una sdcard ad oltre 200KB al secondo (kbytes), anche grazie a Paolo Ferraris che ha proposto di usare il code unrolling (16 istruzioni INI da 16 cicli di clock invece di una INIR da 21), in pratica un byte disponibile ogni 16 clock Z80 compreso il salvataggio in memoria. Ogni 16 bytes c'e' un ritardo dovuto al salto nel loop.

Ciao!


Other related posts:

  • [zxspectrum] Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet
  • [zxspectrum] Re: Scheda Ethernet




  • [ Home | Signup | Help | Login | Archives | Lists ]

    All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
    Everything else ©2008 Avenir Technologies, LLC.