SSD disk til RC8000

Fra DDHFwiki
Spring til navigation Spring til søgning

Hvis RC8000 skal kunne vises kørende, er SMD diskene ikke en langtidsholdbar løsning. Ligesom med RC4000 vi head-crash før eller siden (sandsynligvis før!) betyde enden på den fest. Så vi må lave en SSD-løsning i stil med SSD disk til RC4000.

Design

RC4000 løsningen er i virkeligheden en simuleret tromle, ikke en disk. Tromlen er meget simpel at simulere nærmest på signal-niveau. Særligt, så er timingen styret af tromlen og ikke af controlleren; det fjerner det hårde realtidskrav og gør det attraktivt at lave en ren SW-løsning.

På RC8000 kunne man godt lave en virtuel SMD-disk – men det er langt mere kompliceret end RC4000-tromlen. En anden, lidt mer tiltalende, mulighed er at simulere på interface imellem den ”formatter” som sidder mellem selve SMD-disken og den egentlige disk-controller. I DDHFs RC8000 installation har vi en formatter fra CDC (det lille ”møbel” ved siden af de to disk-drev). RC udviklede deres egen formatter som fandtes i de fleste installationer, kaldet DSA80x, i form af et indstikskort helt som de øvrige kort i RC8000 (der sidder op til 5 kort i en kassette).

På dette mellem-interface er data paralleliseret til 8-bit enheder, og man kan slippe for at håndtere CRC/ECC som ligger i formatteren. Derudover er interfacet nogenlunde som SMD, med ”tags” osv. Vi har principielt den nødvendige dokumentation af intrfacet, via diagrammer + mikrokode til DSA80x – men vi har ikke den formelle beskrivelse fra CDC. Så: Det er ikke trivielt, hverken opbygning eller at få det til at virke – der er f. eks. for mange signaler til at man kan bruge en BeagleBone som på RC8000. Det lugter mere af noget FPGA...

...og når man er der, er det mere nærliggende at lave en generel controller i form af et indstikskort direkte på RC8000 bussen. Med "generel" menes at sådan et modul ikke er begrænset til at være disk-erstatning. Udover at man for den sags skyld kan vælge om man vil simulere SMD-disk, IDA-disk (eller begge!) så kan man udvide funktionaliteten til f. eks. netværksinterface til RC8000 hvis vi udstyrer vores "kort" med en Ethernet port.

RC8000 bussen

RC8000 bussen er en såkaldt "unified bus". Det betyder at læsning og skrivning mellem enheder sker direkte mellem de involverede parter. Alle enheder på bussen på nær memory kan læse og skrive direkte til alle andre enheder (master-funktion), og blive læst/skrevet til (slave-funktion). Memory har kun slave-funktion. Bussens adresserum er 23 bit, mest betydende bit er 0 for memory-adresser og 1 for andre (CPU/controller).

Elektrisk er bussen 5V open collector. Bussigmalerne er termineret med 100 ohm til +5V i begge ender, dvs. der skal synkes ~100 mA for at trække et signal til 0.

Med 24 databit, 23 adressebit, plus det løse i kontrolsignaler, betyder det en skrivning af et nul-ord til en 2^n adresse giver en strømspike på ca. 5 A til stel i det kort som er master! Og tilsvarende en spike på ca. 2.5 A fra +5V forsyningeen i hver af de to kassetter som sidder i enderne af bussen (hvor pull-up modtsandene sidder).

Valg af FPGA board

Vi skal bruge en udviklingskort med en SoC (System-on-Chip), dvs. en FPGA med indlejret (hardcore) CPU. CPUen er i praksis altid en eller anden ARM variant i dag. Kravene til programmerbar logik er beskedne, men der skal være > 80 tilgængelige I/O signaler.

Valget er faldet på Z-turn board V2 fra kinesiske MYIR (Make Your Idea Real!), bl.a. fordi:

  • Legacy Zynq-chip som ikke kræver betalingslicens til udviklingsværktøjet.
  • Tilstrækkeligt med tilgængelige I/O på en brugbar form
  • Fuld Lunux support på den indlejrede ARM CPU, med LAN interface.
  • Rimelig god support mht dokumentation og BSP (Board Support Package).

MYIR har også vist sig at være ganske responsive mht. support.

Printdesign

Den nødvendige elektronik består ud over FPGA-boarded stort set af elektrisk interface mellem FPGAens I/O signaler og RC8000 bussen.

Diagrammet er indtil videre færdigt, og printudlæg er i gang. Printet (std. RC8000 kort-format) skal efter planen produceres som 4-lags print af Eurocircuits.