Contact Information | ||||
---|---|---|---|---|
Who | Office | Phone | Office Hours | |
Prof. Dan Rubenstein | CEPSR 816 | (212) 854-0050 | danr@cs.columbia.edu | Tu, Th 2pm-3pm or by appt |
TA Abhilash Itharaju | Mudd 122A | (917) 330-0050 | ai2160@columbia.edu | M,W 11am-12pm |
The first major topic is digital logic, which concerns the design of circuits to implement logic functions using standard components such as AND-gates, OR-gates, and inverters. The circuits might be used to control the flow of data within a computer, or the processing of the data (e.g., arithmetic operations), or to control the overall action of a computer. We will cover how to specify logic functions precisely, to manipulate formal expressions, and to implement them efficiently. We will then cover the design of basic building blocks, including the control, of modern digital computers. Both combinational and sequential circuits will be covered.
The second part of the course involves the structure and software interface of digital computers. Focusing our attention on modern RISC architecture. We will discuss the functional blocks such as the arithmetic unit, register files, and memory. Single-cycle and multiple-cycle implementations will be presented, followed by the concept of pipelining. We will cover the basics of caches and virtual memory. Machine and assembly language programming is a feature of the course. Main memory systems, currently DRAM, will be discussed as well as the operation of magnetic disk drives. Some aspects of I/O will also be introduced.
Note: This course is a joint EE/CS course.