NEW TERMINATOR BOARD IMPROVES BUT DOES NOT FIX V2315CF SEEK TRACKING
The Virtual 2315 Cartridge Facility (V2315CF) watches the control signals between the 1130's internal disk controller and the internal disk drive (named 2310 or 13SD or RAMKIT). It shadows the position of the disk arm as commanded by programs issuing XIO Seek commands, since the data to be returned when the software reads from the disk depends on which of the 203 cylinders the read/write heads are positioned over. The V2315CF generates the data signals instead of the disk heads.
The current situation is that requests to move the arm are obeyed correctly by the disk drive. The physical arm is in the correct location after every move. However, the location as shadowed by the V2315CF is off, short by 1 or 2 cylinders from the actual final position. The error is cumulative.
The programmer requests a movement of some number of cylinders relative to the current arm position. The disk controller implements that as a series of steps of 1 or 2 cylinders at a time, the first being 1 cylinder only if the requested movement count is an odd number; all others are 2 cylinders at a time.
Glitches on the signals between the 1130 and the disk drive do not appear to affect the disk drive's operation but confuse the V2315CF logic. I can work on two fronts here - eliminating the glitches entirely and/or ensuring that V2315CF is invulnerable to the glitches.
OSCILLOSCOPE OBSERVATION OF SIGNAL ISSUES USING NEW TERMINATOR BOARD
I set up the oscilloscope to watch +Access Ready inside the 1130 at gate A, compartment C1, where the signal enters the logic card. A second probe was connected to the V2315CF main box where the +Access Ready signal is emitted. A third probe was attached at the pin on the 2310 Interface Board where the cable is attached running to the 1130 logic where our first probe is placed. The final probe monitors the signal as it is produced by the disk drive.
I triggered on the falling edge of +Access Ready, using my test code in the 1130 to issue an XIO Seek of 3 cylinders forward which is one that we have seen malfunction consistently. I captured the waveforms and looked to see what was happening to the signal at several points in its routing and hoping to understand what is producing the glitchy behavior.
I can see a very strong drive from the output chip on the V2315CF and then substantial ringing of the signal where it enters the 1130 logic circuits. Part of the problem is ground bounce between the 2310 Interface Board, the V2315CF, the 1130 and the disk drive. I will add some wire braid for high frequency ground paths, although that is not the issue here.
NEW LOGIC IN FPGA TESTED TO SEE IF IT MATCHES DISK ARM POSITION
I modified the seek shadowing logic in the V2315CF and installed it to the flash memory that initializes the FPGA. I ran some seeks of various sizes, noting for each whether the arm position matched the intent of the seek and whether the V2315CF reported cylinder matched the other two.
We were down to one issue with the shadowing. The V2315CF seemed to miss the first seek, that error in positioning remained for all subsequent seeks. I tracked that down to an error in my Verilog, where I look at the state of the Home signal and don't bump the cylinder when it is on in real drive mode. That means we don't count the first step away from cylinder 0.
I updated the logic and tested again. The disk drive and V2315CF are in complete agreement with the seek amounts I executed. I ran a series of forward seeks in a small program, issuing the next seek as soon as the previous one caused an operation complete interrupt. I moved 40, 20, 10, 7, 6, 3 and 1 cylinders with the short program. It completed in a fraction of a second with the disk arm and V2315CF showing the current cylinder location as 87.
No comments:
Post a Comment