Web Resources for CS U380, Section 2 (Computer Organization)

Instructor: Gene Cooperman
Fall, 2008
FINAL EXAM: The final exam is scheduled for Wednesday, Dec. 17, at 1:00 p.m. in room 153 SN (153 Snell Engineering Center). The final exam is open book, open notes, and cumulative for the whole semester.

Course basics: Here are some immediate resources in the course for doing homework, following the readings, etc.

  1. The course directory contains all course homework, handouts, and the syllabus. The syllabus contains the required readings in the textbook. The course directory is also available from our Linux/UNIX machines as /course/csu380gc/.
  2. The course directory includes a help directory.
  3. Please also note the directory for UNIX editors. You will need to login to a UNIX machine to use these. They are in /course/csu380-gc/unix-editors.
  4. Appendix A from the text Appendix A is also online (requires CCIS UNIX password). It is the manual for MIPS Assembly language. Read it, and re-read it.
  5. Portions of the rest of the text CD are also available online (requires CCIS password).
  6. Some help files for UNIX and its compilers, editors, etc. are also available. As you use UNIX, please look into using gdb (GNU debugger), which will help you greatly in debugging. This will help when you test your homeworks on our UNIX machines.
  7. If you use Windows, there is a free, open-source IDE (Integrated Development Environment) for C/C++, Dev-C++. Homeworks must be handed in using C, but this is a subset of C++. When your code works, you must still test it under UNIX:
    gcc myfile.c; ./a.out
    If it doesn't work on our UNIX (Solaris) system, it will be graded as not working.

===============================

MIPS Simulator for Assembly Language homework:

  1. There is a MIPS Assembly language simulator with free downloads available and online documentation.
  2. The syntax of the assembly language is intended to be compatible with Appendix A of our textbook (also available online (requires CCIS password).
  3. The software is distributed as a Java .jar file. It requires Java J2SE 1.4.2 or later. Depending on your configuration, you may be able to directly open it from the download menu.

    If you have trouble, or if you prefer to run from the command line, the Java SDK is is also available for free download from the same download page. The instructions for running it from Windows or DOS should work equally well on UNIX/Linux/Solaris. The CCIS machines should already have the necessary Java SDK installed.

  4. GOTCHAS: There are several important things to watch out for.
    1. When you hit the "Assemble" menu item, any error messages about failure to assemble are in the bottom window pane, tab: "Mars Messages". Input/Output is in the bottom window pane, tab: "Run I/O"
    2. If you paste assembly code into the edit window pane, you must save that code to a file before Mars will let you assemble it.
    3. If you have selected a box with your mouse (e.g. "Value" box in the data window pane, or "Register" box; then Mars will not update the value in that box. Mars assumes you prefer to write your own value into that box, and not to allow the assembly program to use that box.
    4. If your program stops at an error, read the "Mars Messages" for the cause of the error, and then hit the "Backstep" menu item to see what caused that error. Continue hitting "Backstep" or "Singlestep" in order to identify the error.
    5. Your main routine must call the "exit" system call to terminate. It may not simply call return ("jr $ra"). Note that page A-43 of Appendix A of the text (third edition) has a table of "system services" (system calls). These allow you to do "exit" and also I/O.
  5. One of the nicer features of this software is a limited backstep capability (opposite of single-step) for debugging. In addition, the help menu includes a short summary of the MIPS assembly instructions. In general, I like this IDE for assembly even better than some of the IDEs that I have seen for C/C++/Java. (The one feature that I found a little unintuitive is that if you want to look at the stack (for example) instead of data, you must go to the Data Segment window pane, and use the drop-down menu at the bottom of that pane to choose "current $sp" instead of ".data".)
  6. Please note the three sample assembly programs, along with an accompanying tutorial on the same web page.
  7. This is the first year that the College is using this simulator. (We used the SPIM simulator mentioned in Appendix A of the text in the past.) It seems to be very well designed. However, I'd still appreciate if if you could be on the lookout for any unusual issues, and report them promptly (along with possible workarounds), so the rest of the class can benefit. Thanks very much for your help on this.

===============================

How to Install a temporary Linux on top of your Windows O/S:

You are not required to install Linux on your computer. CCIS makes avaiable many Linux machines. For example, you can do:

  ssh pacman.ccs.neu.edu
OR:
  ssh galaga.ccs.neu.edu
However, if you wish to do hw5 and hw6 locally on your computer, you can easily install a temporary Linux through any of the following three methods:
  1. Wubi-Ubuntu
    Go to Installing Wubi/Ubuntu, and follow the instructions there. The advantage of Wubi is that you can boot into a full Ubuntu Linux that uses the full resources of your machine. Yet, when you no longer want it, you delete a Windows file (containg wubi), and it's gone. Wubi does not modify the partitions of your PC, as a more permanent Linux install might do.
  2. andLinux
    Go to andLinux and follow the instructions. This creates a "merger" of the Linux kernel with Windows allowing you to run Linux applications on the Windows desktop.
  3. vmplayer (VMware)
    1. Go to the VMware page for vmplayer and download the player according to the instructions on that page.
    2. Go to the virtual appliances page of VMware and download one of the Linux operating systems into your vmplayer. A popular choice might be Ubuntu 8.10 Desktop, which has two users giving it 5 stars as of Nov. 7, 2008. It will expand to 3 GB on disk. As a VMware guest operating system it is assigned only 512 MB of RAM by default (can be modified). The advantage is that it allows you to use both Linux and Windows in the same environment. The disadvantage is that it gives 512 MB of RAM to Linux, and it takes 512 MB away from Windows when you are running Linux alongside Windows. (When you exit the vmplayer, the 512 MB RAM is returned to Windows.

===============================

Linux (further information): (Some of this information is out-of-date. But this may help guide you if you are looking for other ways to gain experience with Linux.) Linux is fast becoming a popular choice for a desktop operating system alongside Microsoft Windows and Apple MacOSX. Here are some pointers to Linux. I also have a Linux web page, with basic information. You can easily try it out without having to partition your disk, via the three options below. (See additional information on vmplayers and wubi/wubuntu above.):

  1. a LiveCD (requires re-boot, but doesn't touch your hard disk)
  2. VMplayer (runs Linux as virtual (guest) operating system on top of your host operating system, Windows. (Unfortunately, the free vmplayers are currently available only for Windows and Linux. One installs the vmplayer, and then downloads a "virtual application". VMware has several Linux virtual machines to choose from.
  3. Wubuntu (Ubuntu distribution inside your Windows distribution)
The most popular permanent version of Linux today is Ubuntu. You can download it and install it. It will lead you through partitioning your hard disk to create a dual-boot PC (booting Windows and Linux --- you choose the default O/S, and you can choose the non-default at boot time.

This remaining information is becoming more out-of-date, but is left here in case it is useful: If you decide you want Linux available permanently, the simplest thing to do is to get the Ubuntu .iso image or create an Ubuntu LiveCD, and then follow their instructions for installing Ubuntu permanently. (Ubuntu is the most widely used Linux distribution, but you are welcome to alternatively install any of the many other Linux distributions.) For those who are interested further, we will:
  1. provide pointers to scripts that install the LiveCDs to hard disk;
  2. provide pointers to full Linux distributions that install to hard disk (harder to configure properly than LiveCDs, but much more software)
  3. provide pointers to help with Linux issues (e.g. Crew and in-class volunteers)

===============================

Newest Generation CPUs

(This portion has not been updated for a long while. For example, the question about 64-bit CPUs has now become an absolute standard, and dual-core processors are now the latest thing. Nevertheless, the information in these articles is still highly relevant to today's CPUs.)