Subway CPU (Comestible Processing Unit) Architecture

The Subway sandwich shop near where I work illustrates the InHell CPU architecture. (InHell is the hardware arm of Infernosoft.)

Instruction Destruction Pipeline

The Subway CPU has six or seven stations in the pipeline. Each station interrogates the Customer for its phase of the operation and the next one and completes its phase, then hands the sandwich off to the next station.

Multiple Scream-Ahead Instruction Delivery

  • Packet Compression

  • Channel Stuffing
  • Collision Detection

The first station accomplishes at least two tasks. The first five parameters of your sandwich are interrogated (bread type and size, meat type, cheese type, and whether to toast) and three are implemented. The bread packet is often compressed vertically and loaded with the meat. Then the packet is handed off to the next station, using the technique of horizontal packet compression to achieve greater throughput. This station is the most efficient of all, exposing bottlenecks in the rest of the system.

Special Sub-Instruction Processing

At the next station, you are interrogated again about what kind of cheese you want and whether to toast the packet. Packet-toasting is a special sub-instruction, which introduces a delay of about half a minute as the instruction is removed from the pipeline and sent to an off-line toaster. Meanwhile, the worker at this station repeats the interrogation and fulfillment process for the next customer. When the toaster emits its process-complete interrupt, the station worker retrieves the packet and places it back into the queue, hopefully in the correct order.

Multiple-Redundant Instruction Decoding

At the Accessories station, two to three people perform serial functions on your sandwich packet. The first person asks, "Everything?" and you respond with a variable-protocol list of additional items to add to the data packet. The first person's buffer, however, is only capable of holding two sub-instructions, and there is no protocol for transferring the request-list to the next station. Thus the next station interrogates you again for the rest of the list. Again, this station's buffer can only decode two sub-instructions, so the process is repeated.

Optimization

It takes less time to put some of everything on the bread-packet than to interrogate at each item, so in an optimistic optimizing strategy, the first person asks, "Everything?" 90% of the time, however, the answer is a specific list of items.

Hyperthreading

Occasionally there is a second row of customers behind the first, who also communicate with the workers at the stations. Fans of Intel's CPU architecture might think that such hyperthreading would double the capacity of the Subway CPU, but in fact it reduces it to lower than when Hyperthreading is turned off. There is also the ever-present danger of having instructions for your data packet be confused with instructions for someone else's, and you end up with Jalapeno peppers on your meatball marinara sandwich.

Cache Incoherency Problems

Occasional hiccups in the instruction decoding process cause cache-incoherency, where an individual sandwich-packet gets matched up with the wrong customer. A processing station interrogates the customer and receives correct instructions, but these are inflicted upon the wrong packet. This causes a packet-ack and either the error has to be corrected or the entire packet has to reprocessed from scratch.