Todd Griffith was going to debug Kali or die trying.
Thirty-six strobe lines—an electroencephalogram of the Kali chip’s brain waves—danced in parallel from left to right across the four monochrome monitors in his cluttered office. The answer to the riddle lay hidden within them, and he knew that if he looked hard enough he would eventually find it. Unless, of course, he went mad first.
The chip was six months off schedule, and before Kali no chip of Todd’s had ever been late by so much as a millisecond. It was the curse of the new guy. It had to be. The original design team of Todd and Casey had met their milestones with monotonous regularity. Then management had stepped in with characteristic stupidity, reassigning Casey to some skunkworks kludge and replacing her with Pavel the Weirdo. For the last nine months, ever since Pavel had taken over as Todd’s junior partner, glitches had popped up with distressing frequency. Things that had worked before suddenly stopped working. And although it was tempting to blame Pavel for the bugs, they always turned out to have been there in Todd’s logic all along, lying dormant. Week by week Pavel added more capability to the Kali, and week by week this additional logic exposed the weaknesses in Todd’s original architecture, as a cantilever added to the tenth floor of a building might expose a flaw in the foundation. Todd, in his arrogance, had built very little debug time into the schedule. And, being a hardware guy, he resolutely eschewed Brooks’ famous dictum to “take no small slips.” Therefore every new bug meant a new small schedule slip, and every time the schedule slipped management became exponentially more pissed -and Todd’s life became exponentially more wretched.
If Casey were still on the project Todd wouldn’t be in this mess. If Casey were still on the project, the design would be done by now and some silicon foundry in Texas or Sunnyvale would be cranking out Kalies like jellybeans. Casey would have found work-arounds for the subtle flaws in Todd’s logic—she always did. If Todd’s specification called for a two microsecond wait-state, Casey’s logic would have tolerated any value between one and three. Casey accommodated Todd, subordinated her design goals to his. She reacted instinctively to the feel of his design—as a junior surgeon might address herself to a wound in the scalp so that the senior surgeon could focus his attention on the bullet in the brain.
Pavel wasn’t like that. If two microseconds were specified, then Pavel’s circuitry demanded two microseconds. Not one, not three, nor even 1.9 or 2.1. Pavel claimed to be a purist when it came to Very Large Scale Integration. Todd thought that ‘anal retentive’ was a better term.
But he had to give the devil his due. Pavel himself might be an unfriendly, humorless, compulsively orderly and geeky weirdo, but Pavel’s designs were magnificent. They were economical of power, heat, real estate, and cycles. They were, in a word, cool, and anybody who knew anything about the aesthetics of VLSI design could see that. Pavel’s logic demanded precision, but it paid good dividends. There was no denying that the chip that would ultimately result from the collaboration between Todd and Pavel was going to be vastly more cool than the one originally conceived by Todd and Casey. Therefore it was no good bitching to management about Pavel. Management could clearly see that coolness came from Pavel and schedule slippage came from Todd. Besides, there was no way he could blame an interface bug on the junior designer when his own circuitry didn’t meet the spec. So whenever a new bug appeared, Todd owned it. He was not used to owning bugs, and he didn’t like it.
As irritating and embarrassing as these bugs had been, they had been relatively easy to diagnose and correct. They were nothing but timing glitches, the kind any smart college kid working on his first chip would be expected to handle. You could find a timing glitch with the silicon equivalent of a flashlight, and you could fix it with the silicon equivalent of string and bubble gum. In the nine months that Pavel had been working on the Kali project, Todd had found and fixed forty-seven such bugs, with an average elapsed time of just four days from the time a report was opened in the bug-track database to the time it was closed. Today, March 28, 1990, only one open bug remained.
But this one was no simple timing glitch, and there was no simple fix for it. It was different from any bug Todd had met in nine years of designing computers for a living. It was a phantom. Irreproducible. Subtle. And fundamentally impossible. Bugtrack number K666. The Beast.
The Kali would run successfully for hundreds of millions—hundreds of billions—of cycles, then inexplicably shit the bed, as if deciding that just this one time two plus two equaled seventeen, or that just this one time the letter ‘x’ fell between ‘q’ and ‘r’ in the alphabet. Then Kali would resume giving the right answer, failing only once until a power-down and reset, and never, ever repeating the same mistake. It was like that Charles Addams cartoon where a barber holds a mirror to the back of a customer’s head to produce an infinite regression of faces in the mirror in front of him, and the seventh face is a monster. The Beast was a monster. It was one true, hairy, son-of-a-bitchin’ bug.
Retrospective diagnostics proved that the floating-point section of Kali’s Arithmetic Logic Unit was unmistakably, and correctly, executing orders that it had not yet received and that the early arrival of results from the floating point messed up fifteen dependent steps elsewhere in the device. Clairvoyance in an ALU was an intriguing capability, but at this point in his life Todd was much more interested in the prosaic than in the paranormal. Since he didn’t really believe that Kali had supernatural powers, he had to wonder if something almost as unexpected was going on.
He was certain that the Beast was caused by a race condition, when electrons on separate paths towards a common logic gate wound up in a dead heat, and the gate could not determine who got there first. When that happened the output from the gate would be unpredictable. Debugging a race condition was usually the most satisfying part of chip design, but chasing the Beast had long ago ceased being fun. How could the decode be working correctly if the fetch had failed? Unless the laws of the universe had been suspended within the confines of his chip, it simply wasn’t possible. And yet it happened. How?
Todd had been hunting the Beast relentlessly for three months now. He hardly ever left the Mill. If he wasn’t in the lab huddled over prototype silicon with probes and oscilloscopes he was in his cramped office running simulations and poring over schematics. Other than short exchanges with Pavel, he spoke to virtually nobody. He hadn’t answered his phone or e-mail in a month. His food came from Mill vending machines. He slept on the floor of his office. Every third day or so he showered in the locker room, and once a week he went home for a change of clothes, timing his arrival to hours when his house mates would be asleep or at work. Todd didn’t want to see anybody. Human companionship was a vague memory, and he wanted to keep it that way.
His office itself bore witness to the frenzy that possessed him: A whiteboard covered with saw-tooth and square-tooth timing diagrams in blue, black and red marker scribbled on top of each other, like a faux Jackson Pollack done by Seymour Cray on acid. A sleeping bag rolled up under a table. Stacks of empty Jolt Cola cans. A wire-wrapped circuit board in the corner collecting dust. Piles of unread memos about schedules and coding practices. Reference catalogues from chip suppliers intermixed with random comic books—Cheech Wizard and The Eternals. CDs, headphones. On his desk, propped against the window that overlooked the old mill pond, a needlepoint sampler, sewn for him by his sister in cross-stitch:
Running round and round
In tiny circles
At very high speed
And on the wall (its only adornment): a framed two-photo sequence of a Formula One racing car slamming into the wall at the Montreal Grand Prix. The little figure in the white track-safety volunteer garb slouching out of the path of a flying tire like Groucho Marx evading bullets in Duck Soup— that was Todd. There had been a time when those mementos had brought a smile, but that time was long gone. He was aware of one thing only: the deathmatch with his own brainchild, the Beast.
I am Kali, destroyer of worlds. I am become death.
Something like that, wasn’t it, that Bobby Oppenheimer supposedly said when he and his homeboys blew up that first atomic bomb somewhere outside Los Alamos in the summer of ’45? Kali, the Hindu goddess of death and destruction, patron saint of the Manhattan Project—what a great code name for a chip that now seemed determined to destroy its creator by cold fusion of his brain cells.
Not that Todd had been thinking of Oppenheimer or atom bombs when he chose ‘Kali’ as the project name for this cache-controller. Actually, he had chosen the name because he thought that particular Hindu goddess had about six elegant arms (thirty delicate fingers) and two nice breasts, a combination that sort of appealed to him. If he had known this chip was going to turn out to be such a killer bitch he would have chosen another name. Leona, maybe. Or Nancy.
I am Kali, destroyer of worlds. I am become death. . .
Todd stared at the pattern on the dusty screen of monitor 4 and took another sip from the can in his left hand. His right hand was tapping one, two, three, four, against his left foot’s one, two, three. Todd didn’t know how to think unless he was drumming, and the harder he was concentrating, the more complex the polyrhythms became. He absently placed the Jolt Cola on his desk. Now his left hand began tapping too, adding another level of texture: one, two, three, four, five; one, two, three, four, five.
He had been checking out the strobe lines (all one hundred and twenty-eight of them, in every permutation) for nearly fifty hours straight and he was prepared to go another fifty hours. It was a brute force tactic: Stress the chip; find the bug. Cool it with a hit of Freon. Heat it with a hair drier. One two three. Spike the voltage; dim the voltage. One two three four five. If Kali wouldn’t yield her secret voluntarily, he would goddamn well torture it out of her.
Hey, wait. What was that?
It almost looked like a simultaneous hiccough on two lines that didn’t touch each other.
The monitor he was studying was a beat-up old TeleVideo with an interlaced refresh. Mirages were common when you used that kind of prehistoric jack-leg equipment. You could get a hiccough interference pattern from the ceiling lights, for Christ’s sake. That was probably all it was, he told himself, an artefact from the ceiling lights. Todd usually subtracted that visual noise from the signal subconsciously, but maybe in this sleep-deprived buzz-state he had been fooled. His right foot began to tap, doubling the right hand: . . . two. . . . four. . . . two. . . .four. . .
Hey. There it was again.
He typed a command on the keyboard to replay the log file. Yes. There it was again: a simultaneous hiccough, ever so tiny, of lines four and eighty-nine. Gotcha! He could feel tears welling up in his eyes. Then, as he realized the full meaning of the little hiccough, he shuddered.
“That sneaky worm,” Todd said. “I’ll kill the little scumpuppy.”
From the moment Todd met the Beast he had had an uneasy feeling about deliberate sabotage, but he had always tried to dismiss that feeling as paranoia. Now the hiccough proved his intuition had been right. Line four talking to line eighty-nine was about as innocent as Aldrich Ames talking to the KGB section head. Pavel, Todd’s innocent-looking nerdy sidekick, was using one of these lines for double duty. It had taken Todd three months to find the trick, but now that he had it he could hardly believe it. Son of a bitch! He got up out of his chair, left his office, got a drink of water from the bubbler, went to the men’s room, took a leak, washed his face with ice-cold water and went back to his office to replay the sequence from the log file. The glitch was still there, no mistake. Lines four and eighty-nine. Who would have guessed?
He looked at the wall clock. Nine twelve PM here means six twelve in California. Monty would still be there, probably. Todd picked up the phone and dialed his boss’s number.
“Hey, it’s me. I found the bug. That little weasel you stuck me with has been yanking my chain. You better get your ass out to Massachusetts, Monty. You better call the police, too, or at least corporate security.”
Monty’s reaction was entirely predictable. “Todd, Todd. Slow down, son,” he said, with the condescension fairly dripping from his voice. “When was the last time you had any sleep?”
Todd was in no mood for an interrogation.
“Listen, Monty. The BIST is dicking with the refresh. You don’t need to know anything else. His logic is reaching clear across an acre of silicon to tickle mine.”
“Why would he do that?”
“Why do you think? It’s a Trojan Horse.”
“You don’t know that. It might be accidental.”
“Accidental, like Rose Mary Woods accidentally wiping out Nixon’s White House tape by holding the erase button with her toe for eighteen minutes. Accident, my ass.”
Todd loathed Monty’s insipid, patronizing voice. Todd, Todd, slow down, son. In truth Todd found Monty only slightly less weasel-like than his co-worker Pavel. But weasel or no weasel, Monty was the boss, so the problem now became his. Todd could imagine Monty sitting in his Menlo Park office, gazing at the Dunbarton Bridge across San Francisco Bay and frantically searching his mental files for a scapegoat for this fiasco. After all, Monty had been the one who insisted on assigning Pavel to work with Todd in the first place. Clearly, as it now turned out, that had been a mistake. But Monty had never admitted a mistake in his life, and the only other logical scapegoat was Todd. Todd was very suddenly very happy that he had gone to such lengths to cover his ass.
It didn’t matter that Monty was untouchable, that nobody in the entire corporation had the authority, or the balls, to question his judgement. The only thing that mattered was that Monty always required a blood sacrifice when somebody fucked up. That was why Todd was now glad that he had always made backup copies of his work and stored them safely off-site. When you work with weasels, take care that your flesh does not get ripped.
After about ten seconds, Monty spoke.
“Okay, I’m coming out to Massachusetts. Don’t tell anybody about this until I’ve looked into it myself. Go home and get some sleep.”
“I’m going down to the lab to wring the little asshole’s neck first.”
“Todd, no. Go home. Please. You found the bug, let me handle Pavel. Go home, okay?”
“Okay,” he lied.
So, good: Monty was coming. When would he get here? He might catch the red-eye out of San Francisco tonight and be at the Mill by eight tomorrow morning. Monty might even take the corporate jet to get here sooner. A Trojan Horse in Kali was, after all, a bonafide emergency. Millions of dollars, and Monty’s prestige, were riding on the Roadrunner project, and Kali was at the heart of it. Todd’s discovery of deliberate sabotage would surely throw a monkey wrench into the whole undertaking. What would happen to it now?
Todd’s office was on the seventh floor of building eleven; the Kali lab was one building away—across an elevated walkway — and two floors down. Normally the distance between his office and the lab was a big irritation, but tonight it was just as well. By the time Todd reached the lab he felt less inclined to kill Pavel outright and more inclined to break an arm and a leg and let him die of sepsis. Todd pressed the seven-digit combination to the lock, heard the click and turned the handle. He waited before opening the door long enough for one last attempt at regaining some composure before going inside. As he stood there, his chest heaving from the run, his eyes were drawn to the tenth-generation photocopy of the “hardware debug flowchart” taped to the door:
This bogus flowchart with the hopelessly garbled syntax had always made him smile before, but tonight it seemed a very stale joke. He ripped it down, crumpled it and threw it to the floor, imagining himself doing the same thing to pasty-face Pavel: yanking him off his stool and throwing him to the floor, his skin fading into the eggshell white of the linoleum as he gazed up at Todd in terror. Todd threw open the door.
The Kali lab had the feel of a morgue for robots: cold as hell, with dismembered computers on slab-like tables and outlet boxes dangling at the end of fat black power lines that hung like microphones from the ceiling. At the far end of the room, before a massive electron microscope, was an empty stool. Pavel Isaacs was gone.
Todd was across the lab in five quick strides, looking left and right to make sure that the little creep wasn’t hiding someplace. No, the room was empty. Fine, let Monty handle Pavel. They deserved each other. Todd turned and walked out of the lab, past the elevators to the stairs. He was ready to bolt down them when it occurred to him that given the situation, it might be prudent to go with a belt and suspenders. He already had the tapes for insurance, but it would probably be smart to confide in somebody, let them know what was going on, just in case. In case what? Todd didn’t know. Just in case. The first person he thought of was Casey, but he decided it would be un-cool to lay this problem on her. That would be like going to your wife and whining about your mistress. So whom would he tell? Aubrey, he decided. Nick Aubrey.
Nick was a software boy but he was no pansy. If anybody would watch Todd’s back it would be him. In another place and time Todd and Nick, together, had faced sandstorms, malaria, dysentery, and angry people with big knives. Nick Aubrey had balls. There was no way a little office intrigue would phase him. Todd ran back up to his office and dashed off a quick E-mail, using a code that Nick would recognize:
I fear these things