The term "Computer System Architecture" originates from the English term Computer Architecture, which is also translated as "Computer System Architecture." The word architecture was originally used in the construction field, where it means "building science," "design or style of a structure," referring to the appearance of a system. In the 1960s, this term was introduced into the computer field, and "Computer System Architecture" has since been widely used. Its scope of study involves not only computer hardware but also software, making it an established academic discipline. However, there are still multiple interpretations of the meaning of "Computer System Architecture," without a unified definition.
The term Computer System Architecture was proposed by Amdahl et al. in 1964. They defined system architecture as the attributes of a computer system as seen by a programmer, i.e., its conceptual structure and functional characteristics. This essentially refers to the external features of a computer system.
According to the hierarchical structure of computers, different programmers perceive different attributes of a computer. For example, for a programmer using FORTRAN high-level language, an IBM3090 mainframe, a VAX11/780 minicomputer, or a PC microcomputer would all appear identical because running their programs on these three computers yields the same results. However, for a programmer using assembly language, the attributes of the computers they face differ because the assembly language instructions of these three machines are completely different.
Furthermore, even for the same machine, programmers at different levels—such as application programmers, high-level language programmers, system programmers, and assembly language programmers—perceive entirely different external characteristics of the computer. So, which level of programmer’s perspective defines the external characteristics typically referred to in "Computer System Architecture"? A relatively consistent view is that of machine language programmers or compiler writers, who perceive the basic attributes of the computer, i.e., its conceptual structure and functional characteristics. These are the attributes that machine language programmers or compiler writers must adhere to in order to ensure that the programs they write, design, or generate can run accurately on the machine.
The fundamental attributes of a computer as perceived by machine language programmers or compiler writers refer to the traditional machine-level system architecture. Functionalities above the traditional machine level are considered software functionalities, while those below it belong to hardware and firmware functionalities. Therefore, the conceptual structure and functional attributes of a computer system actually represent the interface between software and hardware in a computer system. In computer technology, a phenomenon where something or an attribute exists but appears non-existent from a certain perspective is called transparency. Typically, in a computer system, the conceptual structure and functional attributes of lower-level machine levels are transparent to high-level language programmers. From this, we see that there is a system architecture at each level of the hierarchy.
For current general-purpose computers, the attributes of computer system architecture should include the following aspects:
● Data representation: data types and formats that hardware can directly recognize and process;
● Addressing methods: minimal addressable unit, addressing types, address calculation, etc.;
● Register organization: setup, number, word length, usage conventions of general-purpose/special-purpose registers;
● Instruction set: operation types, formats, sequencing methods, control mechanisms of binary or assembly-level instructions;
● Memory system organization: minimal addressable unit of memory, addressing method, capacity, maximum addressable space, etc.;
● Interrupt mechanism: classification and prioritization of interrupts, functionality and entry addresses of interrupt handling programs;
● Definition and switching between supervisor mode and user mode at the system machine level;
● Machine-level I/O structure: connection, usage method, throughput, operation completion, error indication of output devices;
● Information protection methods and protection mechanisms for various components.
Original source: Anhui Server Data Recovery Center - http://www.ahserver.com/plus/view-92-1.html