Table of Contents

Part 2

Entries

March 9th, 2012

It's Friiiiiiiiiiiiiiiiiiiiiiiiiiiiidddddddddddddddddddddaaaaaaaaaaaayyyyyyyyyyyyyyyyyyyyyyyyyyyyy!!!!!

WOOHOO! The best way to start a weekend is by spending that time in the lair. So many magical things happen down here it is incredibal. Today I plan on spending some time doing opus and maybe working on the cpu simulator. Check back later for an update……

March 14, 2012

Today in Comp Org I think we have begun the process of making real progress on our CPU simulator. We have decided on simulating the 6502.

We were talking today about instruction sets and how they relate to the simulator. We have decided that each of out instructions will be four bytes in size. We also have narrowed down what different instructions we will have. This coming Friday we should be able to actually begin to write down our instructions. Once we get that down I think we should be able to move at a much faster pace!

March 15th, 2012

From this day forward, I declare March 15th……… OPUS DAY!!!!!

Today I will be working on my opus cranking out keywords and such. I just finished up the interrupts keyword and I feel I have a better understanding of them now but not to the point I would like. This will require some more study on my part. I think I will also attempt to do the Address Bus and Data Bus keywords as well.

March 28th, 2012

Welcome to my final dated entry for the month. Today I will be working on my opus. I have 5 more keywords to do and the objective and experiments. I have been reading through my book a little bit about registers and instruction sets. I wasn't here on friday but from the looks of the board we have decided on what our instruction set will be. Now it will be up to us to write it and implement it in our simulator.

Keywords

asm Keywords

Interrupts

Definition

Interrupts are changes in the flow of the instruction set. These are not caused by the running program but typically are related to some form of I/O. It is important to note that interrupts are asynchronous, meaning that they do not have to occur at a specific point in time but can executed at various different times.

Demonstration

The following is a paraphrased version of a list of how the interrupt process works at a software level.

  1. The interrupt service routine saves all the registers so they may be restored later
  2. Information about the interrupt, such as status codes are read
  3. I/O error can be handled if that occurred
  4. The global ptr and count variables are updated.The ptr is incremented and the count is decremented to indicate that one less byte remains to be output. If count is greater than 0, there are more characters to be output. Copy the one now pointed to by the ptr variable into the buffer register.
  5. If needed, a special code is output to tell the device that the interrupt has been processed.
  6. Restore all saved registers.
  7. Execute the RETURN FROM INTERRUPT instruction which puts everything back to where it was before the interrupt.

Data Bus

Definition

In computer science a data bus is a system that transfers data different parts of the computer.

Demonstration

Modern buses can use both parallel and bit serial connections and can be wired in many different ways. Without buses there would be no way for data to be transferred between two different pieces of hardware.

For a more in depth description of this check out this link → http://en.wikipedia.org/wiki/Bus_%28computing%29

Address Bus

Definition

An Address Bus is an internal channel from the CPU to memory where addresses are transferred.

Demonstration

The number of wires that this bus contains determines the amount of addressable memory there can be.

for a more detailed description check out this link → http://en.wikipedia.org/wiki/Address_bus

Machine Word

Definition

In Computer Science, a word is a unit of data that is used by a particular processor. It usually is a group of bits handled as a unit by the instruction set. The word size will change depending on what processor you have.

Demonstration

In the case of our instruction set, the machine word is 4 bytes. The Motorola 6800 is an 8 bit processor therefore the word size is 8 bits.

Stack Operations

Definition

There are only two main operation that can be perfromed on a stack. The first one is called push. push allows you to add a piece a data to the top of the stack in memory. The second one is called pop. pop allows you to remove a the topmost piece od data from the stack in memory.

Demonstration

A full demonstation of the operations have been performed by me at this link → http://lab46.corning-cc.edu/opus/fall2011/dschoeff/start#stacks

Registers (General Purpose/Integer, Floating Pointer, Accumulator, Data)

Definition
General Pupose/Integer

These type of registers can hold both data and registers and are used for a variety of purposes.

Floating Pointer

This type of register can hold floating point data values.

Accumulator/Data

This type of register can hold numeric data values, as well as characters, small bit arrays and other data.

Demonstration

Registers (Stack Pointer, Program Counter, Flag/Status)

Definition
Stack Pointer

The stack pointer is used to manage the runtime stack which keeps track of the of where the current program should return control when the subroutine stops runnning.

Program Counter

The program counter is a special purpose register used to point to the current instruction that is being executed in the instruction sequence.

Flag/Status

This regester is a collection of flag bits for the processor. This register contains information about process state. It typically contains at least three flags including zero,carry and overflow.

Demonstration

Registers(Index/Pointer)

Definition

An index register is a processor register used for changing the operand addresses during the runtime of the program.

Demonstration

The contents of an index register is added to an immediate address to form the effective address of the actual data.

asm Objective

asm Objective

Understand the impact of number systems

Definition

This will involve not only knowing about number systems suck as binary and hexadecimal, but also understanding how they play a part in the operation of a computer.

Method

I will achieve this goal by studying how number systems are used in the operation of the computer.

Measurement

I will measure my success by how well I know how number systems function in the operation of a computer

Analysis
  • How did you do? I believe I have a good understanding of binary and hexadecimal.
  • Is there room for improvement? There is always room for improvement.
  • Could the measurement process be enhanced to be more effective? Not that I am aware of.
  • Do you think this enhancement would be efficient to employ? If one were to be implemented then yes.
  • Could the course objective be altered to be more applicable? How would you alter it?It could be narrowed to a specific component of the computer giving more direction as to what to study.

Experiments

Experiment 4

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.

Experiment 5

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.

Retest 2

Perform the following steps:

State Experiment

Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.

Resources

Evaluate their resources and commentary. Answer the following questions:

Hypothesis

State their experiment's hypothesis. Answer the following questions:

Experiment

Follow the steps given to recreate the original experiment. Answer the following questions:

Data

Publish the data you have gained from your performing of the experiment here.

Analysis

Answer the following:

Conclusions

Answer the following: