Biyernes, Nobyembre 25, 2011

Structured Computer Programming- CS14


The cover page of the book ' structured computer organization' by Andrew S. Tanenbaum  presented a computer as a series of layers, each one built upon the ones below it, and understanding as a separate entity. it is a semi-detailed introduction to the various "levels" of a computer, beginning with the digital- logic level (the actual hardware) and working up to both the operating-systems and assembly-language levels.


In the digital logic level base in the cover page of the book, the 1 hz clock, flip flop, dynamic ram, and static ram is in this level.

Digital Logic Level : At the bottom is the digital logic level, which is the computer's real hardware.  This is a building block for the higher levels.  A digital circuit is one in which only two logical values are present.  A signal between 0 and 1 volt represents one value (binary 0) and one between 2 and 5 volts represents the other value (binary 1).  Voltages outside these ranges are not permitted.  Tiny electronic devices, called gates, can compute various functions of these two-valued signals.  These gates form the hardware basis on which all digital computers are built. Device level explains the operation of the gates.  A transistor can be made to operate as a very fast binary switch. 
  


the 1 hz clock is in this level. clock is a circuit that emits a series of pulses with a precise pulse width and a precise interval between consecutive pulses.  The time interval between the corresponding edges of two consecutive pulses is the clock cycle time.  Pulse frequencies are between 1 and 500 MHz, corresponding to clock cycles of 1000 nsec to 2 nsec

flip flop = In electronics, a flip-flop or latch is a circuit that has two stable states and can be used to store state information. The circuit can be made to change state by signals applied to one or more control inputs and will have one or two outputs. It is the basic storage element in sequential logic. Flip-flops and latches are a fundamental building block of digital electronics systems used in computers, communications, and many other types of systems.

RAMs (Random Access Memory) come in two varieties Static (SRAMsand Dynamic (DRAMs).  Static RAMs are constructed internally using D flip-flop circuits.  The memory is retained as long as power is on.  They are fast with an access time of a few nsec.  They are popular for level 2 cache memory.  Dynamic RAM is an array of cells, each one containing oe transistor and a tiny capacitor, which can be charged or discharged.  As the electric charge leaks out, it must be refreshed (reloaded) every few milliseconds t prevent the data from leaking away.  They are more complex but have larger capacities.



Micro-architecture level: The next level is the microarchitecture level which implements the Instruction Set Architecture (ISA), the level above it.  This contains a microprogram which fetches, decodes and executes instructions (in this case Integer Virtual Java Machine instructions).  Each instruction has one or two fields to serve some specific purpose.  The first is the opcode (short for operation code), which identifies the instruction such as ADD or BRANCH.  The second field specifies the operand (which variable).

in this level, the adder and interpreter is presented in the cover design.

Adder : A binary adder circuit can be built using AND, OR and XOR gates with two data input bits
and a carry-in bit that produce a sum and a carry out bit

Interpreter: A program that executes instructions written in a high level- language. There are two ways to run  programs written in a high-level language. The most common is to compile the program; the other method is to pass the program through an interpreter. An interpreter translates high-level instructions into an intermediate form, which it then executes.

ISA level (Instruction Set Architecture) :
The Instruction Set Architecture (ISA) is the part of the processor that is visible to the programmer or compiler writer..it is also a the part of the computer architecture related to programming, including the native data types,  instructions, registers, addressing mode, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of  opcodes(machine language), and the native commands implemented by a particular processor.


In the cover page, in this level, the pentium 4, embedded computer, mouse trap are in this level.


Pentium 4: Pentium 4 (P4) is the Intel processor (codenamed Willamette) that was released in November 2000. The P4 processor has a viable clock speed that now exceeds 2 gigahertz (GHz) - as compared to the 1 GHz of the Pentium 3. P4 had the first totally new chip architecture since the 1995 Pentium Pro. The major difference involved structural changes that affected the way processing takes place within the chip, something Intel calls NetBurst microarchitecture


Embedded computer: Any computer used as a component in a device whose prime function is not that of a computer. One example is a weapons-guidance system. Another is a computer-controlled blood analyzer that uses a minicomputer or microcomputer to control various tests that are run on blood in order to produce an integrated printout of all test results. Many domestic electronic products now contain embedded computers.


Mouse Trap: 




Operating System Level: 


is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system. A user cannot run an application program on the computer without an operating system, unless the application program is self booting.


Under this level, the race, windows, and operating system is in this level. Race refers to the a situation in which multiple processes read and write a shared data item and the final result depends on the relative timing of their execution. and the windows is a operating environment introduced by windows.





Assembly Language Level: 
is a low- level- programming language for computers, microprocessors,  microcontrollers,  and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on mnemonics that symbolize processing steps (instructions), processor registers, memory locations, and other language features. An assembly language is thus specific to a certain physical (or virtual) computer architecture. This is in contrast to most high-level programming languages, which, ideally, are portable.

Some features of this level that is in the cover are the low level language, high level language, assembler and loader.


Low level Language: In computer science, a low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. Generally this refers to either machine code or assembly language. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware."


High Level Language:  is a programming language with strong abstraction from the details of the computer. In comparison to low level programming languages  it may use natural language elements, be easier to use, or be from the specification of the program, making the process of developing a program simpler and more understandable with respect to a low-level language. The amount of abstraction provided defines how "high-level" a programming language is.

Assembler:  a computer program to translate between lower-level representations of computer programs. An assembler converts basic computer instructions into a pattern of bits which can be easily understood by the computer and the processor can use it to perform its basic operations.


Loader: is the part of an operating system  that is responsible for loading programs. It is one of the essential stages in the process of starting a program, as it places programs into memory and prepares them for execution. Loading a program involves reading the contents of executable files, the file containing the program text, into memory, and then carrying out other required preparatory tasks to prepare the executable for running. Once loading is complete, the operating system starts the program by passing control to the loaded program code.
All operating systems that support program loading have loaders, apart from systems where code executes directly from ROM or in the case of highly specialized computer systems that only have a fixed set of specialised programs.

In the cover page, there are some pictures that are not in the level. However, they are still play a big part of the structure of computer programming. 
The pipeline, which serves as the pipeline in the levels or layers of computer  it is the continuous and somewhat overlapped movement of instruction to the processor or in the arithmetic steps taken by the processor to perform an instruction. Pipelining is the use of a pipeline. Without a pipeline, a computer processor gets the first instruction from memory, performs the operation it calls for, and then goes to get the next instruction from memory, and so forth. While fetching (getting) the instruction, the arithmetic part of the processor is idle. It must wait until it gets the 
next instruction. With pipelining, the computer architecture allows the next instructions to be fetched while the processor is performing arithmetic operations, holding them in a buffer close to the processor until each instruction operation can be performed. The staging of instruction fetching is continuous. The result is an increase in the number of instructions that can be performed during a given time period. 


Branch Prediction: a branch predictor is a digital circuit that tries to guess which way a branch (e.g. an if-then-else structure) will go before this is known for sure. The purpose of the branch predictor is to improve the flow in the instruction pipeline. Branch predictors are crucial in today's pipelined microprocessors for achieving high performance.
Ultra Sparc -  SPARC (Scalable Processor ARChitecture)- The UltraSPARC is a microprocessor developed by Sun Microsystems who is now a part of Oracle Corporation and fabricated by Texas Instruments that implements the SPARC V9 instruction set architecture (ISA). It was introduced in mid-1995. It was the first microprocessor from Sun Microsystems to implement the SPARC V9 ISA. Marc Tremblay was a co-microarchitect.
In the cover page it is somehow putted in the sky because maybe the developer is the sun microsystems in which literally, sun is located in the sky.

Media Processor: A media processor is a microprocessor-based system-on-a-chip which is designed to deal with digital streaming data in real-time (e.g. display refresh) rates. These devices can also be considered a class of digital signal processors (DSPs).

Bluegene: is a computer architecture project to produce several supercomputers, designed to reach operating speeds in the PFLOPS (petaFLOPS) range, and currently reaching sustained speeds of nearly 500 TFLOPS (teraFLOPS). It is a cooperative project among IBM (particularly IBM Rochester and theThomas J. Watson Research Center), the Lawrence Livermore National Laboratory, the United States Department of Energy (which is partially funding the project), and academia. There are four Blue Gene projects in development: Blue Gene/L, Blue Gene/C, Blue Gene/P, and Blue Gene/Q.

Cache:  is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere.

PCI express: (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a computer expansion card standard designed to replace the older PCI,PCIX and AGP bus standards. PCIe has numerous improvements over the aforementioned bus standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance-scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot plug functionality. 

Over all, the content in the cover page are connected to each other. Serving as a great function for computer structure. Each has a role that composes the structure of computer. The cover page is also a detailed coverage of all the levels.