This course covers organization, structure, and design of computers, starting with a history of machine-assisted calculation and a review of the original Von Neumann machine. Major architectural improvements since 1950 are reviewed, and the design of efficient, pipelined processors is introduced. Topics include instruction set designs using CISC and RISC, addressing, interrupt and exception handling, stacks, data path control, horizontal and vertical microprogramming, busses, paging, segmentation, and cache. Mapping of twos complement arithmetic onto register level hardware, including simple control units for Booth's Algorithm and non-restoring division also are covered.