Homework 3

22C:122, Fall 1998

Due Monday Sept 14, 1998, in class

Douglas W. Jones
  1. Suggest a calling sequence, receiving sequence and return sequence for procedure calls on the DEC PDP-8; this should allow a single parameter to be passed in the accumulator, it should allow a single result to be returned using the accumulator, and it should allow recursive calls! You will have to assume that some memory region is reserved for use as a stack, and you will have to assume that some memory location, possibly an auto-increment location, is reserved for use as a stack pointer.

    Note: For the purpose of this assignment, the compact CPU reference material in the alt.sys.pdp8 FAQ may prove sufficient, and the modern on-line programmer's reference manual is almost certainly overkill. Both are indexed in the web page for Friday's lecture.

  2. Propose a data path for the PDP-8 CPU, with emphasis on implementing the AND, TAD, DCA and Group I operate instructions -- ignore memory addressing and ignore control structures! Focus on arithmetic!

  3. Background: Many 16 bit computers were built based on architectures inspired by or derived from the PDP-8. Among these were single-accumulator machines (the CCC/Honeywell DDP-516 and its successors built by Prime Computer Inc), 2 accumulator machines, such as the HP 2100, and 4 accumulator machines, such as the Data General Nova.

    Many of these can be described as the result of evolutionary designs based on the DEC PDP-8 following from answers to the following question: Given 4 extra bits per word and a PDP-8 based instruction set, how many bits should be assigned to expanding the number of opcodes, how many should be assigned to expanding the number of accumulators, how many should be assigned to expanding the number of addressing modes, and how many should be assigned to expanding the diredt-address space of the machine?

    Consider answering the above with "1 bit each", so you get a 4 bit opcode, 1 bit to select between 2 accumulators, 1 bit to expand the addressing modes, and 1 bit to expand the page-size. Assume, furthermore, that you retained the basic PDP-8 instruction set with no modifications, so that if all added bits were set to zero, you would get a machine that behaved exactly like a PDP-8.

    Part A: What 8 instructions would you suggest would be the most useful additions to the opcode set of the machine?

    Part B: What 4 new addressing modes would you propose to add to this machine?

    Part C: What would you do with the 3 extra bits added to the microcoded Operate instructions?

    Note Some of aspects of these three parts require creativity and will be graded on the grounds of reasonableness, while other aspects have objectively required correct answers!