Vad är egentligen en FCPU? Paul Svensson The FCPU was developed at DATASAAB in Linköping between 1969 and 1975. However, the project became too costy for DATASAAB, and the FCPU never went into production. No more than a dozen FCPUs was ever built. FCPU stands for Flexible Central Processing Unit. The FCPU (with memory and I/O) was intended to emulate the DATASAAB D22 computer (released in 1968) and at the same time be used for future development. It consists of three parts: FU, AU, and CU. The Field Unit (FU) addresses the Main Storage Unit (MSU), which is an 8 bye wide memory. The FU is able to read and write any 1 through 8 bytes long word (field) at any byte address of the MSU. The Arithmetic Unit (AU) contains some 16 general registers and various adders subtracters, multipliers and logic circuits. The Control Unit (CU) controls the other units and the 1/0 system. The CU is micro programmable. To the CU, a Variable Logic Set (VLS) could be attached to tailor the FCPU for special asks. There are mainly three micro instructions: CU, AU, and FU instructions. A micro instruction would not have to await the completion of the Previous one. Provided the two of the same them do not address unit. Communications between units is provided by means of "To/From Registers" (TFR). Those are 64 bit registers with a hand-shaking bit, telling wether the register contains valid data or not. An valid register cannot be written into, and an invalid register cannot be read. There are a total of 12 TFRs; four between each pair of units. The TFRs make the units kind of asynchronous to each other. A few physical facts about Lysators FCPU: The FCPU (really FCPU-1) itself occupies two cabinets. 512 Kbytes of AM occupies another two cabinets. Memory chips contain 1 Kbit each. IO control and drivers also used to fill two cabinets, but we sold them as scrap. The IO cabinets really were D22 (DataSAAB 1966 model), just for compatibilty. This means 24 bit word data for IO. The word length of 24 bits, used in D22 was only for compatibility with D21 (DataSAAB 1962 model). There were no ICs, but only transistors, in the IO cabinets. There were buffer units between the IO cabinets and the disks, because the 10 cabinets were too slow - not the disks. Since we didn't have room for six cabinets down in the basement, the oldest just had to go. Lets have a look on the micro instruction format! A micro instruction is 32 bits long. The two first bits (0,1) select unit (AU, FU, CU-processing or CU-Branch). Bit 2 specifies VLS modification (this is not interesting). The rest of an Arithmetic Unit (AU) instruction looks like this: bits 3-5: Select one of eight AU modules The Move (MOM) Shift and Mask (SAM), and Adder (ADM) modules are standard, others (like the DCM - Decimal Conversion) are optional or available for new AU functions. These bits are decoded at the back plane. The AU resides in two 19 inch racks. bits 6-16: Select or specify a function within the addressed module. These bits are sent to the addressed module. bits 17-31: Three operand fields, each of five bits. You can address 16 General Registers (GR), four To-From Registers (TFR) for each of the Control (CU) and Field (FU) Units. Seven addresses are intended for speicial modification using a VLS, and the last one yields a constant zero when read and a /dev/null when written. The CU reads micro instructions from the Control Storage (CS) and sends them to the unit specified in bits 0-1. The sending involves Micro instruction Preparation units (MIP), which act as TFRs, that is: if not written, can't be read and if not read, can't be written. They are queues of length one. In the micro assembler listing there is a column telling the micro programmer the kind (AU, FU, CUP, CUB) of each instruction. He might then optimize an "FU AU AU AU FU FU" sequence into "FU AU FU AU FU AU". Lysator owns one (the only one?) of these beasts. We also have the full documentation and circuitry description. Occasionally, we run some micro code programs in its CU, but (due to inactivity among our members) we haven't had the energy to hack anything useful (like an OS) on it, yet.