SSD disk til RC4000
Vi har kun 1 fungerende disk - med intakte hoveder - tilbage på RC4000, så vi (Henrik og Ole) vil gerne sætte et moderne lagermedium på. Derfor har vi udviklet FBS4000 - Future Backing Storage.
Status 1. oktober 2020
FBS4000 er designet, bygget, indbygget og indkørt i RC4000. Problemet med at bl.a. Algol compileren ikke kunne køre, er fundet og rettet.
RC4000 Monitor er udvidet, så man kan udnytte FBS4000's mulighed for at simulere op til 4 separate diske. Hver disk kan i princippet være op til 131072 segmenter, men det er praktisk at benytte RC4819 standard-størrelsen på 73080 segmenter (54 MB).
Vi har læst et sæt (på 3) backup bånd ind fra da RC4000 stod i Polyteknisk Radiogruppe, og kørte med 2 aktive RC4819 diske. Desværre er denne backup ikke komplet, men vi arbejder videre på at strikke et "gyldent" RC4000 system sammen fra de forskellige kilder vi har.
Relevant dokumentation
RC4320 Drum Controller HW Manual
SW interface RC4000 - RC4320
For at starte en tromleoperation skriver driveren i 3 registre i RC4320 (io Control, forskellige modifiers):
<First Segment> : Første segment
<No. of segments> : Antal segmenter
<First storage address> : Første adresse i core store. Skrives med forskellige io modifiers for hhv. læsning og skrivning.
Operationen starter når <First Core addr> skrives af driveren. Når det ønskede antal segmenter er overført giver RC4320 et interrupt. Driveren kan herefter aflæse status med io Sense.
Design
Brug en BeagleBone Black (BBB) til at emulere "tromle" op mod en let modificeret RC4320 Drum Controller (DRC).
Driveren skelner ikke mellem tromle og RC433 disk, og dette interface er meget simplere end det til RC4819 / DFC403.
Tromlen har den fordel frem for disk at eneste clock source er tromlens klokspor - vores SW behøver ikke være hård realtid op mod en controller-clock.
Lav interface til BBB så generelt som muligt, med få signaler (=> seriel kommunikation), så det er muligt at skifte BBB ud med en anden uC, og tilpasse dens SW nemt. Signaler skal være uden hårde timing-krav, og rene SW-kontrollerede GPIO signaler.
Signaler mellem tromle og DRC som vi skal emulere:
Fra tromle
Clock fra clockspor (Tromleclock)
Data fra clockspor (index mark)
Læsedata fra valgt dataspor
(Clock fra dataspor modtages af DRC men bruges ikke)
Til tromle
Skrivedata
"Write Enable"
Andre DRC signaler
Diskemulatoren skal vedligeholde sin egen kopi af DSA (Drum Segment Address) registeret i DRC. DSA er kun 11 bit (2048 segmenter, størst mulige tromle). DSA bliver opdateret (1) ved at RC4000 skriver <First segment> (2) det bliver herefter talt op af DRC under udførelsen af fler-segment operationer.
Vi skal bruge:
IOBUS(5:23) - der er kun modtagere til 19 bit i DRC
Strobe for RC4000 skriv til DSA
Signal for inkrementering af DSA.
Strobe signalet er asynkront fra RC4000; alle andre signaler er synkrone med Tromleclock som vi selv laver. Strobe + IOBUS skal derfor latches i adapteren (udenfor BBB). Ved at bruge et skifteregister til at latche IOBUS lægges kun beslag på 2 GPIO på BBB.
Der er tilføjet et par signaler som er praktiske, men ikke essentielle:
Connected - udgående signal som kan tvinde DRC i status "disconnected". Dettte for at kunne signalere fejl mod RC4000 ved f.eks. paritetsfejl i modtagne skrive-data.
DRC Power OK fra DRC. Af praktiske hensyn er dette signal kombineret med "Signal for inkrementering af DSA" via en gate på et (nyt) nabo-kort; se diagram og trådningsliste. Formålet med at have adgang til DRC Power OK er at sikre dataintegritet ved f. eks. at lukke relevante filer/filsystemer når operatøren slukker for +25V til tromlen.
Liste over BBB GPIO signaler:
Mod BBB:
Latched DSA write strobe
CpDSA(12:23) (Signalet der inkrementerer DSA registeret). Er kombineret med DRC Power OK, se ovenfor.
Serielt signal fra nyt DSA skifteregister (First Segment register)
Write Data
Write Enable
Fra BBB
Clock til skifteregister, nulstiller også DSA write latch.
Tromleclock
Indexpuls
Drum Read Data
Connected
Ialt 10 GPIO signaler + 8 til lysdiodestyring.
Diagram
Noter til diagram:
Der benyttes kun 1 af de 2 rækker ben i hver position på de 2 BBB stik, P8 og P9. Dette for at kunne bygge konstruktionen på et "HCØ" RC4000 breadboard. Konkret er det de 2 "yderste" rækker der med få undtagelser er valgt, med en afstand på 20 * 0.1"
BBB forsynes med +5V fra adapter/RC4000, og forsyner adapteren med +3.3V. Pga. latchup må ingen af benene på BBB stikkene drives før +3.3V er oppe. Det udelukker bl.a. direkte forbindelse til TTL indgange.
Trådningsændringer i DRC
Adapteren placeres i pos. 47 tillige med et standard RC0834-1 kort i pos. 46 og fordrer en række tilføjelser til trådningen mellem disse og den øvrige DRC, samt en ændring i trådningen til pos. 7 beskrevet i trådningsplanens note 4.
Installation
Ved brug af adapteren skal kort i pos. 4 fjernes i DRC.
Endvidere skal Drum Speed overvågning i DRC ved at fjerne ELCO pin kortpos. 42 pin 36.
Hvis adapteren fjernes, kort 4 genindsættes og forbindelserne nævnt i trådningsplanens note 4 reetableres, kan DRC bruges som normal tromle-controller.
Software
Der er adgang til de 19 mindst betydende bit af RC4000 IOBUS. For at emulere en disk af samme størrelse som RC4819 (54 MB, 73080 segmenter) kræves 17 bit. Fordi antal slices pr. disk er begrænset til 2046, er det ikke særlig attraktivt at gøre disken meget større. I stedet bruges de 2 sidste bit som Unit Number, således at vi - efter behørig modifikation af driveren i RC4000 Monitor - kan emulere 4 diske samtidig.
Software findes på github
Lysdioder
FBS4000 er udstyret med 8 røde lysdioder, som kontrolleres af software. P.t. har de følgende betydning, i rækkefølgen indefra og ud:
Unit 0 Selected
Unit 1 Selected
Unit 2 Selected
Unit 3 Selected
Read Access
Write Access
Error
Error latched
Andre noter
Husk at halvdelen af bits (IKKE hverandet bit!) bliver gemt inverteret på tromlen. Hvis man fjerner inverteringen i disk-filen på uC kan man bruge samme filformat som RC4000-simulatoren ("ikke-format", ord for ord, mest betydende byte først) => nem fil-udveksling.
DRC genererer og kontrollerer et paritets-ord for hver segment. Vi gemmer altså ikke ordet, men det kan tjene til integritetscheck af data i begge retninger mellem adapter og DRC.
DRC genererer 4-5 klok-faser for hver puls med monostabile FF der trigger hinanden. Man kan derfor ikke sætte klokrate op ift. tromlen, men ned skulle ikke være noget problem. Bemærk at transfer rate for tromlen / DRC er ca. det halve af RC4819 diskene.
Errata, RC4320 Drum Controller HW Manual
Der er fundet følgende meningsforstyrrende fejl på diagrammerne af RC4320:
Side DRC003: Nederste input signal i venstre side af diagrammet, -,WORD(9) skal være -,WORD(0)
Side DRC017, øverste 8-input gate, med output D41, ved GiCount(0:23): Gate er tegnet som NAND, men det er en AND (AA401).
Side DRC018: Navne på input-signaler er forkerte, næst-nederste BG404: -,HS_BUS(4) skal være HS_BUS(4), og HS_BUS(5) skal være -,HS_BUS(5).
I teksten (VB769), side 8, sidste afsnit: Det fremgår at DTA(0:8) er en kopi af DSA(12:21). De to signalsæt er hhv. 9 og 10 bit, så det er oplagt forkert. DTA(0:8) er en kopi af DSA(13:21). DSA(12) bliver ikke brugt; den findes kun fordi der var en bit til overs i registeret :)