TOTAL MEDIA INC
CE242-05
Computer Architecture
July 11, 2018
Aaron Pearson
TABLE OF
CONTENTS
BUSINESS ORGANIZATIONAL BACKGROUD 1
Modern Computer Organizations and Design 1
Digital Logic Design 2
Computer Memory & Data Representation …………………………………………..3
Assembly Language Programming………………………………………………………..4
Input/ Output organization…………………………………………………………………….5
Summary & Final Recommendation………………………………………………………6
Business organizational Background
The name of my company is Total Media Inc , we’re a all purpose media company based out of Birmingham , Alabama. The purpose for our company is to be a one stop shop for all media services. We provide an wide array of services that can cater to your specific needs. Total Media Inc was created in 2010 when the founder Roman Prescott , who attended the University of Alabama studying computer architecture , came up with the idea to run an freelance photography business for fellow classmates who were graduating. This idea was brought to life when Roman noticed that a lot of classmates that wanted grad pictures, didn’t have the money for photo sessions.
Also, while in school Roman picked up a Dj gig on the weekends to make money to support his business. After he graduated with a Bachelors in Computer Science – Computer architecture , He decided to move back to his hometown Birmingham , Alabama to build a brand which we know today as Total Media Inc. He came up with the brilliant idea to house multiple services under one umbrella. We do everything from DJing events, photography for weddings or graduation, to website designs and etc. Like mentioned earlier Total Media headquarters is based in Birmingham , where it is ran by family members, is the location where staff receive training and internships . There are a total of 5 other locations in well known cities in the southern belt including 1 extra location in Alabama.
The locations consist of: Atlanta, Dallas, Orlando, Nashville, New Orleans, Tuscaloosa.Total Media headquarters consist of a 20 person staff that continues to grow each year, as well as 10 in each other location. We are building the brand to be able to branch out to many more states. The Headquarters receives a handful of interns through out the year to help with expanding.
Modern organizations and Design
Mr. Prescott has built Total Media Inc on a well up to date technology base.With his background in computer
science, Total Media Inc is already at the brim of becoming one of the most tech savvy business in the state of
Alabama. The company are using some of cutting edge computer systems and media devices. The staff have iPhone
8’s for business, Mac desktops at their desk , MacBook Air’s for mobile work, the company also have some of the
top leading djing and photography equipment. The iPhone 8 that the staff have I one of the top leading mobile
devices its powerful iOS system ad A11 chips. The phone has an awesome look with the 5.45 x 2.65 x 0.29 size with
awesome display from the 4.7 inch retina HD IPS LCD display. The weight come in at 5.22 ounces which makes for
easy carry.The resolution is a stunning 1,334 x 750 pixels, and runs on the IOS 11 operating system.
The computers are where the true power of the company come from. The iMac (Core i7) 4.2 27-Inch Aluminum
(Retina 5K, Mid-2017/Kaby Lake) which makes for a great quality display. It features a 14-nm "Kaby Lake" 4.2
GHz Intel "Core i7" processor (7700K) with four independent processor "cores" on a single chip, an 8 MB shared
level 3 cache, 8 GB of easy to upgrade 2400 MHz DDR4 SDRAM. It also has plenty of space with the 2 TB Hard
Drive+SSD (Fusion) drive, and a Radeon Pro 575 graphics processor with 4 GB of VRAM. It also has a built-in
camera for business FaceTime calls in HD.
Lastly is the MacBook Air which is used when staff are on a project or out doing event.The Air runs a display of
13.3 inches (diagonal), which is a LED- backlit glossy widescreen with support of millions of colors. The storage on
the laptops are 256 PCle-base SSD which is configurable to 512 SSD. The 1.8GHz dual-core Intel Core i5, Turbo
Boost up to 2.9GHz, with 3MB shared L3 cache.It also is configurable to 2.2GHz dual-core Intel Core i7, Turbo
Boost up to 3.2GHz, with 4MB shared L3 cache. The air has a 8GB of 1600MHz LPDDR3 onboard memory. The
size comes in at 0.11 x 12.8 x 8.94 with a weight of 2.96.
DIGITAL LOGIC DESIGN
Today we live in a very digital world, so it is very rare that people talk about analog computers. An analog
computer is a form of computer that uses continuously changeable aspects of things such as electrical, mechanical,
and hydraulic quantities to model the product being resolved. It represents data in measurable quantities, such as
voltages, to show how the problem is solved, but in data instead of numbers.
Many people today use digital computers for most of everything, but analog computers is where the computer
originated. The idea of the analog computer was to create a sinusoidal motion with hundreds of variables. The
component that is most commonly used to create that in modern analog computers is an amplifier. This particular
amplifier has an output current that is proportional to its input potential differences. This allows the analog computer
to be great at simulating dynamic systems. These conductions can be done in real time or at an accelerated rate,
which allows experimentation by repeating runs with alternate variables rapidly. Simulations are used for aircrafts,
nuclear-power plants, and industrial chemical processes.
As for digital computers things work a little differently. Unlike the analog computer the digital computer uses a
discrete form to solve problems. It operates on data such as magnitudes, letters, and symbols in a binary code. A
binary code only uses the numbers 0 and 1 to represent a letter, digit, or other character in a device. The computer
then counts, compares, and manipulates the digits or combinations according to instructions held in the memory. A
common use of a digital computer is that it can control industrial processes and regulate operations of machines. It
can also organize large amounts of data for all businesses and simulate the behavior of dynamic systems like
weather patterns.
There are a few key advantages for the digital computer system. One of the advantages would be that the result can be reproduced easily. Since the output of the digital systems is independent of temperature, noise, and humidity.
Another example would be that the digital designing is easier. The design used for digital systems requires the use of
Boolean algebra and other digital techniques that are considered easier than that compared to analog designing.
Another major advantage would be that it is highly reliable. The digital systems have error correction codes that are
coded in the system to fix any errors that occur automatically. The last reason is one that we all know, it is very fast.
The main reason it has high speed processing is because of the advances in digital signal processing. These are just a
few key reasons why digital processing systems are better than analog systems.
COMPUTER MEMORY & DATA REPRESENTATION
Data types are considered the building blocks provided by a programming language. In most languages the basic
data types are built in. Depending on the language and its implementation, basic data types may or may not have a
one to one correspondence with objects in the computer’s memory.The basic or primitive types may consist of the
following: character, integers, floating- points, bit, bit string and decimal. All of these types have their on structure ,
but as well have similarities to the other data types.
A character (char) in computers is considered a grapheme or symbol such as in an alphabet or syllabary.
Characters are used throughout the whole computer system. Your keyboard is a great example of how characters are
represented in computers, and even programs use characters throughout their system. Other examples of characters
may consist of letters, numerical digits, common punctuation marks and white space. Characters are most often used
to be combined into strings. Characters are also used in two of the most common encodings ASCII ad the UTF-8
encoding for Unicode.While most character encodings map characters to numbers and/or bit sequences, Morse code
instead represents characters using a series of electrical impulses of varying length.
Integers in computer science are referred to as a datum of integral data type, which is a data type that represents
some range of mathematical integer. Integral data types come in different sizes and sometimes can contain a
negative value. Integral types can be unsigned or signed. A unsigned integral type is capable representing non
negative integers, as with signed which are capable of representing negative integers as well. Integer values are
usually represented in the source code of a program as a sequence of digits optionally prefixed with + or -,
depending on if it’s a signed or unsigned integral type. The most common representation of a integer (usually a
positive integer) is a string of bits, using the binary numeral system.
Floating point (FP) is arithmetic using formulaic representation of real numbers as an approximation so as to
support a trade off between range and precision. Floating point can be found in most systems that contain small and
large real numbers, which consist of fast processing times. The term floating point refers to the fact that a number’s
prefix radix point can “float”. It can be placed anywhere relative to the significant digits of the number. The FP is
represented with a fixed number of digits, numbers of different orders of magnitude. It is a part of a computer
system specially designed to carry out operations on floating point numbers.
A bit string, also known as a bit array, is a mapping from some domain to values in the set of {0,1}. The point is
that there are only two possible values, so they can be stored in one bit. As with other other rays , the access to a
single bit can be managed by applying an index to the the array . A Bit , which is short for binary digit, is the
smallest unit of data in a computer . Like Bit string is has a single binary value of {0,1}. Even though computers
provide the instruction that test and manipulate bits, they are designed to store data and execute instructions in bit
multiples called bytes.
Decimal is the term that describes the base 10 number system, which is commonly used. The decimal system
consists of ten digits 0-9. The binary, octal, and hexadecimal systems are used instead of the decimal system. All
these schemes have a number of digits that has a power of 2.This is an advantage for those systems with high and
low digital states.
Computers convert text and other data into data representation by using an assigned ASCII value. The character is
represented by a ASCII value, Which in binary for the letter “h” its 104. After it matches the character with the
ASCII value it is then converted into a data rep value, for “h” it is “01101000” in binary. Each and every character is
represented like this in binary, hexadecimal, and decimal. There are even differences in the character “h” and “H”,
in how they are represented , with “h” being represented by the ASCII value 104 then 150 for “H”. The ASCII is
the starting point in the converting process, then you just follow the ASCII table to convert to which ever data
representation you need.
In a computer you have physical memory such as RAM and then you have virtual memory such as virtual.
Physical memory usually holds all of your apps, documents and procedures that are on your computer . Physical
memory such as Ram, which consist of a chip that is located on your motherboard, gives the computer a “physical”
location for the computer to retrieve such things as apps or documents. As well it is a form of data storage that can
be accessed randomly at any time or order from the physical location. Even though RAM pulls from a physical
location , the RAM is lost as soon as you turn the computer off.
Virtual memory on the other hand is also located on a physical location (a hard drive) is used when the RAM is
filled during a session. Its slower than physical memory like RAM so it decreases the performance of things like
applications. Virtual memory is a memory management technique that provides an idealized abstraction of the
storage resource that are actually available on a given machine. This creates the illusion to users of a very large main
memory.
RAM’s counterpart ROM is also considered data storage , but is easily altered or reprogrammed , unlike RAM
which can not be alter or programmed. It stores instructions that are not necessary for re-bottling up to make the
computer operate when it is off. ROM has another type that is called EEPROM, which is a read only memory.
EEPROM is a special PROM that can be erased when exposed to an electrical charge. As ROM does , EEPROM
can also retain content while the computer is off as well it is not as fast as RAM. DRAM is a random access
semiconductor memory that stores each bit of data in a separate tiny capacitor within an integrated circuit. The
capacitor can either be charged or discharged; these two states are taken to represent the two values of a bit,
conventionally called 0 and 1.
These are just a few of the memory sources that you have on your computer. There are many more memory sources
such as main , secondary , solid state and etc memory that can be used to store important memory to your computer.
One of the memory sources you will hear about is cache. Cache is a unique thing and you use it every day when you
log on to a computer or mobile device. Cache is a hardware or software that stores data so future requests for that
data can be served faster. Have you ever logged on to one of your favorite website such a facebook , and you felt
that it loaded a lot quicker than the first time you accessed it, well that’s cache.
Another memory source is main memory and secondary memory . The primary memory is embedded with two
types of memory technologies; they are the RAM (Random Access Memory) and ROM (Read Only Memory). The
secondary memory is accessible in the form of Mass storage devices such as hard disk, memory chips, Pen drive,
floppy disk storage media, CD and DVD. Primary memory is volatile in nature, while secondary memory is non
volatile. The information that is stored in the primary memory cannot be retained when the power is turned off. As
the secondary memory is permanent, all the files and programs are stored in the secondary memory most and as the
primary memory interacts very fast with the micro processor, when the computer needs to access the files that are
stored in the secondary memory, then such files are first loaded into the primary memory and then accessed by the
computer.
ASSEMBLY LANGUAGE PROGRAMMING
Compiler is a software which coverts a program written in high level language to low level Language. There are
two sub sections of a compiler : cross compiler and source to source Compiler. Cross compiler that runs on a
machine ‘a’ and produces a code for another machine ‘b’. It is capable of creating code for a platform other than the
one on which the compiler Running. Source to source compiler or trans-compiler or transpired is a compiler that
translates Source code written in one programming language into source code of another programming language.
There are two major phases of compilation, which in turn have many parts. Each of them take input from the
output of the previous level and work in a coordinated way.The first phase is The analysis phase , which is an
intermediate representation, is created from the given source Code (lexical, syntax, semantic). Lexical analyzer
divides the program into “tokens”, a syntax Analyzer recognizes the “sentences” in the program using syntax of
language and semantic Analyzer chicks static semantics of each construct.the second phase is the synthesis which is
a Equivalent target program is created from the intermediate representation. It has three parts : Intermediate code
generator, code optimizer, and code generator. Intermediate code generator Generates “abstract” code, code
optimizer optimizes the abstract code, and final code generator Translates abstract intermediate code into specific
machine instructions.
When a c program is compiled to be executed, it goes through four steps to follow out with the Execution. The
stages consist of : preprocessing, compilation, assembly and linking. The Preprocessing stage consist of a pre-
processor interpreting lines starting with a # character into Preprocessor commands. These commands are formed as
a simple macro language with its own Syntax and semantics. This language is used to reduce the repetition in source
code by providing Functionality to inline files, define macros, and too conditionally omit code.
The second stage is compilation which the preprocessed code gets translated to assembly Instructions specific to
the target processor architecture. The existence of this step allows for C – Code to contain inline assembly
instructions and for different assemblers to be used. Some Compilers also support the use of an integrated assembler,
in which the compilation stage Generates machine code directly, avoiding the overhead of generating he
intermediate assembly Instructions and invoking the assembler. During the assembly stage (stage3), the assembler
is Used in translating the assembly instructions into a object code. The output will consist of a Actual instruction to
be ran by the targeted processor.
Object code generates in the assembly stage and is composited of instructions that the Processor interprets but
some pieces of the program end up missing or out of order . To produce An executable program, the existing pieces
have to be reordered and filled in, this is called Linking. In the final stage (linking) , the linker arranges the pieces of
the object code so the some Of the pieces can successfully call functions in other ones. The result of this stage is the
final Executable program.
Assembly is a symbolic language that is assembled into machine language by an assembler. In Other words,
assembly is a mnemonic statement that corresponds directly to processor-specific Instructions. Each type of
processor has its own instruction set and thus its own assembly Language. Assembly deals directly with the registers
of the processor and memory locations. There are some general rules that are typically true for most assembly
languages are listed Below:Source can be memory, register or constant.Destination can be memory or non-segment
register.Only one of source and destination can be memory.Source and destination must be same size.
INPUT / OUTPUT ORGANIZATION
Interrupt i/o is a way of controlling input/output activity in which a peripheral or terminal that needs to make or
receive a data transfer sends a signal that causes a program interrupt to be set. At a time appropriate to the priority
level of the i/o interrupt, relative to the total interrupt system, the processor enters an interrupt service routine (isr).
The function of the routine will depend upon the system of interrupt levels and priorities that is implemented in the
processor. (interrupt i/o 2004)
You use peripheral device every day when you log into your pc or laptop. Peripheral devices are any external
device that connects to the computer. For these devices to be able to communicate with the processor in a computer,
you need a bus. The bus creates a communication channel between both the processor and the peripherals. A device
requires both input and output to be useful. There are many concepts required to create communication with peripherals , with a bus being one for them. An interrupt allows the device to literally interrupt the processor to flag
some information. For example, when a key is pressed, an interrupt is generated to deliver the key-press event to the
operating system. Each device is assigned an interrupt by some combination of the operating system and bios.
Devices are generally connected to an programmable interrupt controller (pic), a separate chip that is part of the
motherboard which buffers and communicates interrupt information to the main processor.
Each device has a physical interrupt line between it an one of the pic's provided by the system. When the device wants to interrupt, it will modify the voltage on this line.
A very broad description of the pic's role is that it receives this interrupt and converts it to a message for
consumption by the main processor. While the exact procedure varies by architecture, the general principle is that
the operating system has configured an interrupt descriptor table which pairs each of the possible interrupts with a
code address to jump to when the interrupt is received.(peripherals and busses )discuss modes of transfer across
programmed i/o, interrupt initiated i/o, and direct memory access.
Memory units usually store binary information received from an external device. The information that is
transferred from the cpu to the external device is originated from the memory unit. Cpu merely processes the
information but the source and target is always the memory unit. Data transfer between cpu and the i/o devices may
be done in different modes.the 3 modes that data transfers to and from an external device are: programmed i/o,
interrupt –initiated i/o, and direct memory access. (i/o interface: interrupt and dma mode). Programmed i/o transfers
data between the computer and the external device. Interrupt i/o is a way of controlling input/output activity in
which a peripheral or terminal that needs to make or receive a data transfer sends a signal that causes a program
interrupt to be set. Lastly, a direct memory access is one of the features of most operating systems were certain
hardware sub -systems can access main memory.
SUMMARY & FINAL RECOMMENDATION
Reference Page
Buffer Overflow 3 : An Assembly Language, retrieved from http://www.tenouk.com
Compiling a C program: Behind the Scenes , Retrieved from http://www.geeksforgeeks.com
Compiler Design ( Intro of Compiler Design), retrieved from http://www.geeksforgeeks.com
"interrupt I/O." A Dictionary of Computing. . Retrieved August 08, 2018 from Encyclopedia.com: http://www.encyclopedia.com/computing/dictionaries-thesauruses-pictures-and-press-releases/interrupt-io
The four stages of compilation , retrieved from http://www.calleerlandsson.com
“Peripherals and Buses” . Retrieved from Bottomupcs.com: https://www.bottomupcs.com/peripherals.xhtml