Structured Computer Organization Interpretation – CS 14 B
The above image is the cover of a book titled “Structured Computer Organization”. As the title says, it shows the different levels at which a computer works: From the very low level machine instructions with zeros and ones to high level software and programming tools, all on top of the hardware. Essentially, these different layers have formed an “abstraction” where the user is no longer burdened with the interpretation of very low languages when only a simple task is to be done, like open a webpage.
Starting off and building the foundation is the hardware level, represented in the book’s cover as everything in the outside the building including parallel processing, which is primarily a concept but can be classified on hardware.
Just on top of the hardware is the digital logic layer. Seeing as how the hardware understands only ones and zeros, this layer may be the most important. No matter how advanced a computer gets or programming languages develop, binary logic as the computer’s main tongue will always stay. This layer tells what the hardware is supposed to do, which is otherwise useless on its own.
The Instruction Set Architecture and Microarchitecture levels are somewhat similar, with the difference being the Microarchitecture level having a wider scope as it includes not only processor registers, address and data formats, and the like, but also the other parts in the processor that makes ISA implementation possible. In the book cover, an embedded and one Pentium 4 computer are given as examples. This is because on different platforms (or products from the same manufacturer), programming on this level varies due to the low level differences. It is advantageous to know how to program at this level, though, since programs written for a specific microarchitecture will run without any other compilers, interpreters, or translators, at full speed.
The Operating System level not only makes computing life easier, but it also makes it faster and more reliable. This layer is responsible for managing resources like memory and processor times, and also allows us to multitask.
On top of everything else in the cover is the Assembly Language Level. This layer deals with the generation of architecture-specific code through the use of an assembler. It is also important to note that high-level languages that require compilation go through this stage to finally be able to generate machine language. This ensures that program execution is fast, unlike interpreted high-level languages or those that pass through a different runtime layer or virtual machine.
Though seemingly fragmented, every layer is essential as they rely on the layers below them. Also, as every layer gets added, the abstraction makes it easier for humans to operate machines.
Terms found in the image:
- Adder – a digital circuit that performs the addition of numbers.
- Assembler – a program that converts assembly language into machine code.
- Bluegene – an IBM project that aims to reach the PFLOPS operating speeds in their supercomputers.
- Branch Prediction – A technique used in some processors with instruction prefetch to guess whether a conditional branch will be taken or not and prefetch code from the appropriate location.
- Cache – a small, fast memory holding recently accessed data
- Clock – a processor’s clock or one cycle/period
- Dynamic RAM – a type of semiconductor memory in which the information is stored in capacitors on a MOS integrated circuit
- Embedded Computer – hardware and software which forms a component of some larger system and which is expected to function without human intervention.
- Flip Flop – a digital logic circuit that can be in one of two states which it switches (or “toggles”) between under control of its inputs. It can thus be considered as a one bit memory
- Gate – A low-level digital logic component. Gates perform Boolean functions (e.g. AND, NOT), store bits of data (e.g. a flip-flop), and connect and disconnect various parts of the overall circuit to control the flow of data (tri-state buffer).
- High-level Language – a programming language which provides some level of abstraction above assembly language
- Interpreter – a program that executes other programs which are not compiled.
- Loader – the part of an operating system that is responsible for loading programs.
- Low-level Language – Any programming language which either is assembly language, or which is meant to be closely related to, and easily translated into, machine language.
- Media Processor – system-on-chips designed to deal with digital streaming data in real-time.
- Mouse – a device used to manipulate an on-screen pointer that’s normally shaped like an arrow
- Operating System – the low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running.
- Parallel Processing – the simultaneous use of more than one computer to solve a problem
- PCI Express – a standard for connecting peripherals to a personal computer,
- Pentium 4 – a line of single-core desktop and laptop central processing units (CPUs), introduced by Intel on November 20, 2000
- Pipeline – a sequence of functional units (“stages”) which performs a task in several steps, like an assembly line in a factory.
- Race – (Requirements Acquisition and Controlled Evolution) a “back to basics” approach to requirements engineering.
- Static RAM – random access memory in which each bit of storage is a bistable flip-flop, commonly consisting of cross-coupled inverters
- Trap – a program interrupt, usually an interrupt caused by some exceptional situation in the user program
- UltraSPARC – a microprocessor developed by Sun Microsystems.
- Windows – Microsoft’s proprietary window system and user interface software released in 1985 to run on top of MS-DOS.
References to terms: http://www.computer-dictionary-online.org
Subscribe to comments with RSS.