User Tools

Site Tools


opus:spring2012:dgirard3:asmpart1

asm Keywords

Storage

Definition

Areas in the computer like registers or buffers. or other simple things like USB's or RAM, they are places that store digital data for us to use.Data storage is a core function and fundamental component of computers. There is no one kind of storage you have anywhere from permanent to volatile.

Demonstration

This picture shows the hierarchy of storage. From primary to tertiary.

Data Bus

Definition

A data bus is a group of electrical wires used to send information (data) back and forth between two or more components. The width is one of the most important aspects. The width shows how many bits are made up of the bus. It can be from 8 up to 64 bits. When people refer to what size processor the computer they are using, they refer to the front side data bus that connects the processor to the main memory. There are others such as one that goes from processor to dedicated cache memory.

Demonstration

I am not sure how exactly to demonstrate this. But here is an example of what a computer uses “The Intel processor in the current line of Macs uses a 64-bit data bus to connect the processor to its memory.” Its just the wires so the computer can transfer its information to other components.

Address Bus

Definition

An address bus is a computer bus, a series of lines connecting two or more devices, that is used to specify a physical address. When a processor or a device needs to read or write to a memory location, it specifies that memory location on the address bus, the value to be read or written is sent on the data bus.

Demonstration

For example, a system with a 32-bit address bus can address 232 (4,294,967,296) memory locations. If each memory address holds one byte, the addressable memory space is 4 GB.

Machine Word

Definition

Machine word is a specific characteristic in a computer architecture. It represents each bit which are a fixed sized and are handled by the instruction set or the hardware of the processor. The bits represent the length, width and height of each word and this is important.

Demonstration

Some examples of what words are used for are integers, floating point numbers, addresses, registers, memory process transfer, instructions and unit of address resolution. A word in each of these areas of hardware or instruction are important because they help a long the data go through smoothly and easily.

Interrupts

Definition

An interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution. You have 2 different kinds as well a hardware interrupt and a software interrupt. A hardware interrupt cause the processor to stop and save its current state and begin execution of an interrupt handler. A software interrupt is usually found within an instruction set and it will have a context switch. Interrupts are a commonly used technique for computer multitasking, especially in real-time computing.

Demonstration

This code is a simple code that just shows when a car driving continues or gets interrupted. First, we start rolling forward. We have an integer used as a flag, that is either 0 when we have not hit an object, or 1 when we hit something. An interrupt occurs when we hit something, it will stop the robot to avoid any damage, and also set our flag. and so on so forth.

// Interrupt-Driver Bumper Example
// A bumper switch on the front of the robot should be tied to digital pin 2 and ground
 
#include <avr/interrupt.h>
 
volatile int bumper;          // have we hit something
 
void setup(){
    pinMode(2, INPUT);      // Make digital 2 an input
    digitalWrite(2, HIGH);  // Enable pull up resistor    
 
    // attach our interrupt pin to it's ISR
    attachInterrupt(0, bumperISR, FALLING);
 
    // we need to call this to enable interrupts
    interrupts();
 
    // start moving
    bumper = 0;
    DriveForward();
}
 
// The interrupt hardware calls this when we hit our left bumper
void bumperISR(){
    Stop();
    bumper = 1;
}
 
void loop(){
    // if bumper triggered
    if(bumper > 0){
       DriveBackward();    // set motors to reverse
       delay(1000);           // back up for 1 second
       TurnRight();            // turn right (away from obstacle)
       bumper = 0;
       DriveForward();      // drive off again...
    }
    // we could do lots of other stuff here.
}

I/O

Definition

Input and output is what the core of the computer is. It is how data is sent from one place to another. You have some form of hardware that can process information such as a computer and you have a thing to input or give data such as a human or some sort of outside force. Input are data that are received by the system and output is data sent from it. Input devices would be like a keyboard or a mouse. and output would be the screen of your monitor.

Demonstration

This code below is a simple direct address code for the computer. It just says where to read from and where to write from. Or in current terms, input and output.

MOV register, [address] ; to read
MOV [address], register ; to write
 
; similarly
IN  register, [address] ; to read as input
OUT [address], register ; to write as output

Stack Operations

Definition

The two operations that form the majority of the functionality of the stack are the operation of adding to the stack, and the operation of removing items from the stack. First off, a stack is a device that operates in a last in, first out basis. Its like plates in a spring loader of a restaurant. They can only be added to the top, removed from the top and no other plates can be accessed. They move up one at a time while the lower one is moved up as the top is removed. In computer terms we have a an area of data that can be added to, remove some data, check to see if there is any data or check to see if it is full.

Demonstration

This is a simple code to show stack being filled and or emptied depending on what you want to be done or what the situation is.

int main() {
  stack<int> S;
  S.push(8);
  S.push(7);
  S.push(4);
  assert(S.size() == 3);
 
  assert(S.top() == 4);
  S.pop();
 
  assert(S.top() == 7);
  S.pop();
 
  assert(S.top() == 8);
  S.pop();
 
  assert(S.empty());
}

Control and Data Flow

Definition

There are some distinct differences between data flow and control flow. Data flow can do streaming, unlink control flow which can run multiple components that can process data at the same time, smallest unit in data flow is an component, just data within the control flow but can affect the outcome of your control flow, data flow is made up of source(s), transformations, and destinations. Control flow uses process, it is the key for control flow, the first task needs to be completed before it can continue. Smallest unit is a task, control flow does not move data and package control flow is made up of containers and tasks connected with precedence constraints to control package flow

Demonstration

The left side shows a control flow and the right represents a data flow:

asm Objective

asm Objective

familiarity with the organization of a computer system

Definition

This objective entails that i must explain how a computer is setup, such as from the very bottom of how it works all the up to what appears to the user.

Method

To show i know how a computer is organized, i will state and explain some of the basic things that are found within the computer system.

Measurement

To begin, the computer's most important task is storing and managing information within the computer. Simply put, you have unit input then processor then memory then finally unit output. That is a basic setup of what is going on. Obviously there is much more to what is going on within. You have the hardware that is needed such as the CPU, the peripherals, main and secondary memory. The CPU is the major component of a computer; the electronic brain of the machine. It consists of the electronic circuits needed to perform operations on the data. Main Memory is where programs that are currently being executed as well as their data are stored. The CPU fetches program instructions in sequence, together with the required data, from Main Memory and then performs the operation specified by the instruction. Main memory is like Random Access Memory or RAM, and this is tons of data can and will be stored. The secondary memory storage creates a long stable place for the memory to be at. The most commonly known place known as secondary storage would be known as the disk storage. Then you have your peripherals which is used for the users. It makes it easy for us to input some form of data and see and outputted data. But the hardware cant be used unless it has instructions from a program. Thats when the OS comes in or the Operating system. It is a set of instructions for the hardware to run the computer effectively. There is more programming that deals with this but the OS is the biggest part of running the computer.

Analysis

Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.

  • How did you do? I think i explained what i know pretty well.
  • Is there room for improvement? Yes there is so much more that i could learn
  • Could the measurement process be enhanced to be more effective? Yes it could
  • Do you think this enhancement would be efficient to employ? I think it would be
  • Could the course objective be altered to be more applicable? How would you alter it? No it is fine the way it is.
opus/spring2012/dgirard3/asmpart1.txt · Last modified: 2012/04/01 14:31 by dgirard3