SSD disk til RC4000

Fra DDHFwiki
Spring til navigationSpring til søgning

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.

Den færdige og fungerende enhed monteret i RC4000.

Status april 2020

FBS4000 er designet, bygget, indbygget og indkørt i RC4000. Alt ser ud til at fungere, bortset fra at Algol oversætteren ikke kan lide FBS4000. Algol crash'er konsekvent i Pass 1 eller "mellem" Pass 1 og Pass 2 (Pass 2 når ikke at blive læst ind). Videre undersøgelse af dette fænomen pågår.

Relevant dokumentation

RC4320 Drum Controller HW Manual

RCLM400 Schematics

RCLM400 Data Sheets

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

Diagram V1.00

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 :)