In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements (especially speeds and interconnections) and design implementations for the various parts of a computer — focusing largely on the way by which the central processing unit (CPU) performs internally and accesses addresses in memory.
It may also be defined as the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.
"Architecture" therefore typically refers to the fixed internal structure of the CPU (i.e. electronic switches to represent logic gates) to perform logical operations, and may also include the built-in interface (i.e. opcodes) by which hardware resources (i.e. CPU, memory, and also motherboard, peripherals) may be used by the software.
More specific usages of the term include:
The design of a computer's CPU architecture, instruction set, addressing modes, and techniques such as SIMD and MIMD parallelism. More general wider-scale hardware architectures, such as cluster computing and Non-Uniform Memory Access (NUMA) architectures. The set of machine attributes that a programmer should understand to successfully program the computer. Parts of the architecture are the instructions and the width of operands. The system frequency (e.g. 1 GHz) is not part of the architecture.
Prerequisites[edit | edit source]
Please list all prerequisites. Hopefully they will all be topics here at Wikiversity.
If the course is to begin from the fundamentals of computer architecture then it is conceivable that no prerequisite is required to understand these abstract concepts, but being familiar with the following would help.
1.O-level education 2.binary arithmetic 3.electronics basics (Semiconductors, Transistors, Transistor based switching)
Course Description[edit | edit source]
Please put what we will be covering here. Be enthusiastic, not dry. I'll start with this: Here we should learn about the most common ways to transform simple streams of electrons and "holes" into the picture you see on your monitor, the sound you listen in the background - while reading this, and a way all these are interconected and what makes them happen. We should also mention the kinds of devices used to enable your computer to connect to a server half way across the planet (which would have a tough time playing you a song but exist just to route network traffic and they're mighty good at it), the ones that control the industrial machinery, etc.
Lessons[edit | edit source]
- Computer Architecture - The main place for CA material
- Computer Architecture Lab - The CA lab with hands-on work (roll your own microprocessor)
- The necessities in Microprocessor Based System Design
Discussion[edit | edit source]
- The Limit of ILP - Discussion on the David Wall paper
Wikibooks[edit | edit source]
Enrolled[edit | edit source]
Jay6g6 - "This is too empty for me, as of yet"
Related content[edit | edit source]
External links[edit | edit source]
Open source software[edit | edit source]
- Gfarm distributed scalable file system
- MultiCore Swarm - Algorithms for writing code for multi-core processors.