Chapter 2: Fundamentals of Computer Systems for System Architect Designers

According to Chapter 2 “Fundamentals of Computer Systems” from the “System Architect Designer Tutorial (2nd Edition)”, this chapter is a core foundational section for the System Architect Designer examination, covering key technical areas such as computer hardware, software, networks, and embedded systems.

01 Overview of Computer Systems

1. Definition and Composition of Computer Systems

  • 1) Definition: A computer system is an information processing system composed of hardware subsystems (central processing unit, memory, input devices, and output devices) and software subsystems (system software and application software) integrated through a specific structure, which receives and stores information as required by humans, and automatically processes and computes data.
  • 2) Composition
    • Hardware: Processor (CPU/GPU/DSP), memory (RAM/storage), bus (internal bus/system bus/external bus), interfaces (USB/PCIe/SATA), external devices (input/output devices).
    • Software: System software (operating systems, databases, middleware), application software (general software like Office, specialized software like ERP).

2. Classification of Systems

  • 1) By Application Field
    • Industrial Control: PLC (Programmable Logic Controller), Industrial PC (anti-interference, high reliability).
    • Consumer Electronics: Smartphones, Smart TVs (user experience prioritized).
    • Aerospace: Avionics systems (safety-critical, real-time requirements).
    • Medical Devices: Medical imaging systems (high precision, data security).
  • 2) By Functional Characteristics
    • General Systems: Support diverse applications (e.g., servers, personal computers).
    • Specialized Systems: Optimized for specific functions (e.g., embedded controllers, autonomous driving systems).

02 Computer Hardware

The von Neumann computer architecture divides computer hardware into five parts: arithmetic unit, control unit, memory, input devices, and output devices. However, in real hardware, the control unit and arithmetic unit are integrated into a single unit, packaged as the Central Processing Unit (CPU).

1. Processor (CPU)

  • 1) Architecture Types
    • CISC (Complex Instruction Set Computer): Represented by Intel and AMD x86, rich in instructions, suitable for general computing.
    • RISC (Reduced Instruction Set Computer): Represented by ARM and Power, simplified instructions, high energy efficiency, suitable for mobile devices.
  • 2) Domestic Processors: Loongson (MIPS architecture), Feiteng (ARM architecture), Shenwei (Alpha architecture), etc., often using RISC-V, MIPS, ARM, and other reduced instruction set architectures, applied in defense, aerospace, and other fields.
  • 3) Specialized Processors
    • GPU: Parallel processing of large amounts of calculations, used for deep learning (e.g., NVIDIA Tesla), machine learning, and artificial intelligence.
    • DSP: Real-time digital signal processing, used for communication and audio processing (e.g., TI’s C6000 series), often using Harvard architecture.
    • FPGA: Programmable logic, used for prototyping and accelerating computations.

2. Memory Hierarchy

1) Definition

Memory is an electronic device made of semiconductor, magnetic, optical, etc., used for data storage. Based on the hardware structure, it can be divided into SRAM, DRAM, NVRAM, Flash, EPROM, Disk, etc. According to the physical distance from the processor, it can be divided into four levels: on-chip cache, off-chip cache, main memory (RAM), and external storage. The access speed decreases in order, while the capacity increases.

  • 2) Four-Level Memory Hierarchy
    • On-chip Cache (L1/L2): SRAM structure, fastest speed (nanosecond level), small capacity (KB level).
    • Off-chip Cache (L3): SRAM, relatively fast speed, larger capacity (MB level).
    • Main Memory (DRAM): Dynamic Random Access Memory, large capacity (GB level), needs refreshing to maintain data.
    • External Storage (Flash/Disk): Non-volatile storage, large capacity (TB level), slow speed (millisecond level).
  • 3) Performance Trade-offs: Balance between access speed, capacity, and cost (e.g., optimizing cache hit rate).

3. Bus

1) Definition

A bus refers to a form of data exchange between computer components that follows a specific protocol, meaning data transmission between components is implemented in a specific format according to defined control logic. Buses can be classified based on their position in the computer into internal buses, system buses, and external buses. Currently, there are many types of computer buses, commonly including parallel buses and serial buses.

  • 2) Types of Buses
    • Internal Bus (On-chip Bus): Internal interconnection within the chip (e.g., AMBA bus).
    • System Bus: Communication between CPU and memory (e.g., PCIe).
    • External Bus (Communication Bus): Communication between devices (e.g., USB, SATA).

3) Differences between Parallel and Serial Buses

Name Data Lines Characteristics Applications
Parallel Bus Multiple bidirectional data lines Has transmission delay, suitable for short-distance connections System bus (between computer components)
Serial Bus One bidirectional data line or two unidirectional data lines Not high speed, but suitable for long-distance connections Communication bus (between computers or between a computer and other systems)

4. InterfacesInterfaces refer to the communication rules between different functional layers of the same computer. There are various types of computer interfaces, commonly including display interfaces such as HDMI (High Definition Multimedia Interface), DP (DisplayPort), DVI, etc.; input/output interfaces such as SATA, USB, RS-232, etc.; network interfaces such as RJ45, FC, etc.; industrial interfaces such as CAN bus (automotive control), RS-485 (industrial communication), etc.; and non-standard interfaces such as A/D conversion interfaces.

5. External Devices (Peripheral Devices)

  • 1) Input Devices: Keyboard, mouse, scanner, microphone, optical drive, camera, sensors (temperature, pressure).
  • 2) Output Devices: Monitor, printer, actuators (robotic arms).
  • 3) Special Devices:
    • Industrial Field: Trackball, hydraulic devices.
    • Medical Field: Medical imaging devices (MRI).

03 Computer Software

1. Software Classification and Functions

  • 1) Definition

  • Computer software refers to the programs and documentation within a computer system, describing the processing objects and rules for processing tasks. A software system is a collection of programs, related documentation, and data that run on a computer hardware system.

  • 2) System Software:General software configured for the entire computer system, independent of specific application fields, controlling and managing the hardware and software resources of the computer system, and providing operational service support.
    • Operating System: Manages hardware resources (e.g., Windows, Linux).
    • Database Management System: Data storage and retrieval (e.g., Oracle, MySQL).
    • Middleware: Connects applications and systems (e.g., message queue RabbitMQ, caching middleware Redis).
  • 3) Application Software:Software designed to meet specific application needs or solve specific problems, often associated with specific fields.
    • General Software: Office software (WPS), browsers (Chrome).
    • Specialized Software: ERP systems, medical information systems.

2. Operating Systems

1) Definition

An operating system is the resource manager of a computer system, consisting of a set of programs that manage the system’s software and hardware resources. The operating system is the first layer of software configured on computer hardware, managing the bare machine and its files, providing support for other system software (such as compilers, database management systems) and a user-friendly interface for users to operate the system without needing to understand the complex details of the underlying hardware.The operating system typically consists of the operating system kernel and many additional supporting software, such as user interfaces, management tools, development tools, and commonly used applications.

2) Functions

  • Resource Manager: The operating system is responsible for the reasonable allocation, scheduling, and recovery of system software and hardware resources, ensuring that multiple programs can run efficiently and orderly, avoiding resource conflicts. Its resource management functions mainly include:

    a. Processor Management: Solving CPU allocation and scheduling issues, ensuring multiple tasks can run “simultaneously”.

    b. Memory Management: Managing memory allocation and recovery, providing virtual memory technology to expand the address space of programs.c. Device Management: Managing various input/output devices, handling device requests, allocation, and recovery.d. File Management: Managing files on external storage, providing organization, storage, retrieval, sharing, and protection mechanisms for files.

  • User and Computer Interface: The operating system provides a friendly human-computer interaction interface, allowing users to use the computer without needing to understand the complex details of the underlying hardware.a. Graphical User Interface (GUI): Provides an intuitive and easy-to-use operating environment through windows, icons, menus, and pointers (WIMP). Users can control the computer through mouse clicks, drag-and-drop operations, etc.b. Command Line Interface (CLI): Operates the computer by entering specific text commands, which, while having a steeper learning curve, are powerful and flexible.
  • Application Development and Runtime Platform: The operating system shields the technical details of physical devices, providing a high-efficiency, unified platform for application development and execution. Applications use hardware resources through the system call interface (API) provided by the operating system without directly manipulating the hardware.

3) Characteristics

  • Concurrency. At a macro level, multiple programs run simultaneously over a period, but in a single CPU environment, only one program executes at any given moment. Concurrency techniques can effectively improve resource utilization and enhance system efficiency.

  • Sharing. Refers to the ability of resources (including hardware and information resources) in the operating system to be shared by multiple executing processes (threads) rather than being exclusively occupied by one process. Sharing methods include:

    • a. Mutual Exclusion Sharing: Only one process is allowed to access a resource at a time (e.g., printer).
    • b. Simultaneous Access: Multiple processes are allowed to access a resource “simultaneously” for a period (e.g., disk files).
  • Virtuality. Through certain technologies, a physical entity is transformed into multiple logical counterparts, or multiple physical entities are transformed into one logical counterpart. For example, through multiprogramming techniques, a physical CPU is virtualized into multiple logical CPUs; through virtual memory technology, physical memory and disk space are combined to provide users with a virtual address space much larger than the actual memory.

  • Uncertainty. In a multiprogramming environment, allowing multiple processes to execute concurrently, but due to limited resources, processes run in an uncertain manner, and the execution results of programs may not be unique.This arises from the dynamic allocation of system resources and the asynchronous occurrence of external events.

4) Classification

  • Batch Operating Systems. Divided into single-batch and multi-batch based on the number of jobs executed simultaneously. A job consists of three parts: user program, data, and job description (job control language).

  • Time-Sharing Operating Systems. Divides the CPU’s working time into many short time slices, providing service to each terminal user or executing a job in each time slice. Time-sharing systems have four main characteristics: multiplexing, independence, interactivity, and timeliness.

  • Real-Time Operating Systems. Capable of processing external information quickly and responding within the time frame allowed by the controlled object, with high reliability requirements and no strict user interaction requirements. Real-time systems are widely used, mainly for automatic control of production processes.

  • Network Operating Systems. A collection of software and related protocols that enable networked computers to effectively share network resources and provide various services to network users. Features include hardware independence and multi-user support.

  • Distributed Operating Systems. An operating system configured for distributed computer systems. Distributed operating systems are a more advanced form of network operating systems, maintaining all the functions of network systems while also having transparency, reliability, and high performance.

  • Microcomputer Operating Systems. Commonly used include Windows, Mac OS, Linux.

  • Embedded Operating Systems. Run in embedded intelligent device environments, coordinating, processing, commanding, and controlling all hardware and various components it operates, characterized by miniaturization, customizability, real-time performance, reliability, and portability. Often use Hardware Abstraction Layer (HAL) and Board Support Package (BSP) to improve portability, with common embedded real-time operating systems including VxWorks, μClinux, PalmOS, WindowsCE, μC/OS-II, and eCos.

3. Databases

1) Definition

A database (DataBase, DB) is a collection of related data that is organized, uniformly managed, and stored in a computer for a long time. Data is stored in a certain format, with low redundancy, high data independence, and easy scalability, allowing for sharing among multiple users. Databases can be divided into: relational databases, non-relational databases, etc.

  • 2) Relational Databases
    • Design Steps: Requirement analysis → Conceptual structure design (E-R diagram) → Logical structure design (relational model) → Physical structure design.
    • SQL Language: Data definition (CREATE), data manipulation (SELECT, INSERT).
  • 3) NoSQL Databases
    • Types: Key-value databases (Redis), document databases (MongoDB), columnar storage databases (HBase), search engine databases (ElasticSearch).
    • Application Scenarios: Big data processing, high-concurrency web applications.
  • 4) Distributed Databases
    • Definition: A data management information system proposed to meet the needs of geographically dispersed data while requiring varying degrees of centralized management. A database system that meets distribution, logical correlation, site transparency, and site autonomy is called a fully distributed database system.
    • Characteristics: Centralized control of data, data independence, controllable data redundancy, site autonomy, and effective access.
    • Case Studies: Google Spanner, Alibaba OceanBase.

4. File Systems and Storage Management

  • 1) Definition
  • A file is a collection of related information items that has a symbolic name and is logically complete. A file system is a collection of software and related data that implements unified management of files in the operating system, responsible for managing and accessing file information.
  • 2) File Types
    • Files can be classified by nature and purpose into system files, library files, and user files.
    • Files can be classified by information retention period into temporary files, archive files, and permanent files.
    • Files can be classified by protection method into read-only files, read/write files, executable files, and unprotected files.
    • UNIX systems classify files into ordinary files, directory files, and device files (special files).

3) File Structure

    • Logical Structure: Stream files (text), record files (database tables).
    • Physical Structure: Continuous structure (sequential structure), linked structure (chain structure), index structure, and index tables of multiple physical blocks.
  • 4) File Access Methods
    • Sequential Access: Reading/writing information in the file sequentially.
    • Random Access: Reading/writing information in the file in any order randomly.

5) Storage Management Methods

    • Free Block Table: Records the location and size of free blocks.
    • Bit Map: Uses a bit array to indicate whether blocks are free.
    • Free Block Chain: Each free physical block points to the next free management block, forming a linked list of all free physical blocks.
    • Grouped Linking Method: Used by UNIX systems for efficient management of free blocks.

5. Network Protocols

Common network protocols include Local Area Network (LAN) protocols, Wide Area Network (WAN) protocols, wireless network protocols, and mobile network protocols. The Internet uses the TCP/IP protocol suite.

6. Middleware

1) Definition

Middleware is a standardized programming interface and protocol used between application software and various operating systems, a major category of foundational middleware (distributed system services) software, belonging to the category of reusable software.

2) Classification

  • Communication Processing (Message) Middleware, ensuring that systems can communicate across different platforms, achieving reliable, efficient, real-time cross-platform data transmission in distributed systems, such as MQSeries, MQTT (Internet of Things), RPC frameworks (gRPC).

  • Transaction Processing (Transaction) Middleware, implementing coordination of processing order, monitoring and scheduling, load balancing, etc., such as Tuxedo (financial transactions).

  • Data Access Management Middleware, providing a unified interface for reading and writing different types of data and encryption/decryption.

  • Web Server Middleware, providing a runtime container for executing web programs, such as Tomcat, Weblogic, JBOSS, etc.

  • Security Middleware, using middleware to shield the operating system’s flaws, enhancing security levels.

  • Cross-Platform and Architecture Middleware, used for developing large application software. The most powerful is CORBA, which can cross any platform but is too large; JavaBeans are more flexible and simple, suitable for browsers, but runtime efficiency needs improvement; the COM+ model is mainly suitable for Windows platforms and has been widely used in desktop systems.

  • Dedicated Platform Middleware, providing a component library to solve development design issues in specific application fields.

  • Network Middleware, including network management tools, access tools, network testing, virtual communities, etc.

7. Software Components

  • 1) Definition
  • Components, also known as modules, are self-contained, reusable assemblies that provide a unified access interface to the outside. Components can only be accessed through interfaces, not directly manipulated internally. The two most important characteristics of components are self-containment and reusability, allowing for block-style development. Advantages: easy to extend, reusable, parallel development. Disadvantages: requires experienced designers, compromises between rapid development and quality attributes, component quality affects overall software quality.
  • 2) Commercial Component Standards
    • OMG’s Common Object Request Broker Architecture (CORBA) is a pure specification rather than a product, mainly divided into three levels: Object Request Broker (ORB), common object services, and common facilities. It uses IDL to define interfaces and is easy to convert into specific language implementations. CORBA: Cross-language distributed object communication.
    • SUN’s J2EE, defines a complete specification for enterprise-distributed applications developed in Java, where EJB is the component standard of J2EE, and components in EJB are called Beans, which can be divided into session Beans, entity Beans, and message-driven Beans. EJB: Java enterprise-level components.
    • Microsoft’s DNA2000, uses DCOM/COM/COM+ as standard components. COM+: Microsoft’s Component Object Model.

04 Embedded Systems and Software

1. Composition and Characteristics of Embedded Systems

  • 1) Definition
  • Embedded systems are dedicated computer systems centered around specific applications, based on computer technology, integrating configurable and customizable software and hardware.
  • 2) Composition Structure
  • Embedded processors, in addition to meeting low power consumption and small size requirements, can be classified into civilian, industrial, and military grades; civilian-grade devices have a working temperature range of 0 to 70, industrial-grade is −40 to 85, and military-grade is −55 to 150. Their application environments are often very harsh, such as high temperatures, cold, electromagnetic interference, vibration, dust, etc.
  • Supporting hardware refers to other hardware that constitutes the system apart from the embedded processor, such as memory, timers, buses, I/O interfaces, and related specialized hardware.
  • Embedded operating systems refer to the foundational software running in embedded systems, mainly used for managing computer resources and application software. Unlike general-purpose operating systems, embedded operating systems should have characteristics such as real-time performance, customizability, and security.
  • Supporting software refers to software that provides public services, software development, and debugging capabilities for application software development and execution, usually running on top of the operating system and referenced by application software as libraries.
  • Application software refers to software developed to achieve a specific goal of the embedded system.

3) Characteristics

  • Strong specificity, often aimed at specific application needs, equipped with various sensors.
  • Technological integration, tightly combining advanced computer technology, communication technology, semiconductor technology, and electronic technology with specific applications in various industries, making them difficult to separate.
  • Software-dominated hardware integration, efficiently designed by trimming redundancy based on general embedded system versions.
  • Resource constraints, due to requirements for low power consumption, small size, and high integration, the system has very limited resources.
  • Program code is embedded in ROM, to improve execution speed and system reliability.
  • Requires specialized development tools and environments, as embedded systems themselves do not have development capabilities, a set of development tools and environments is necessary for development.
  • Small size, low cost, advanced technology, high performance-to-price ratio, low system configuration requirements, and strong real-time performance.
  • High requirements for security and reliability.

2. Classification of Embedded Systems1) ClassificationEmbedded systems can be classified into embedded real-time systems and embedded non-real-time systems based on different purposes. Real-time systems can further be divided into hard real-time systems and soft real-time systems. From the perspective of safety requirements, embedded systems can also be classified into safety-critical (Safety-Critical or Life-Critical) systems and non-safety-critical systems.2) Real-Time Systems

Real-time systems (Real-Time System, RTS) are systems that can complete system functions and respond within specified time limits.

3) Safety-Critical Systems (Safety-Critical Systems, Life-Critical Systems)Safety-critical systems (Safety-Critical Systems) are computer systems whose incorrect functions or failures can lead to serious consequences such as loss of life or property damage.3. Composition and Characteristics of Embedded Software1) Basic ConceptsMost embedded systems have real-time characteristics, and the typical architecture of such embedded systems can be summarized into two modes: hierarchical mode architecture and recursive mode architecture. The most significant feature of embedded systems is that their operation and development occur in different environments, usually referred to as the “target machine” environment for operation and the “host machine” environment for development, connected via serial ports, networks, or JTAG interfaces. Since the instructions of the host machine and target machine are often different, the development of embedded systems usually requires support from cross-platform development environments, with basic development tools being cross-compilers, cross-linkers, and source code debuggers. It is also essential to consider real-time performance, safety, reliability, code size, efficiency and stability of hardware/software co-design, and specific domain requirements.2) Composition

  • Hardware Layer, including processors, memory, buses, I/O interfaces, power supplies, clocks, etc.
  • Abstraction Layer, including Hardware Abstraction Layer (HAL), providing virtual hardware resources for upper-layer applications (operating systems); Board Support Package (BSP), a type of hardware driver software that provides support for upper-layer operating systems to manage hardware.
  • Operating System Layer, composed of embedded operating systems, file systems, graphical user interfaces, network systems, and configurable modules.
  • Middleware Layer, serving as a bridge connecting two independent applications, middleware can be divided into five categories: service middleware, integration middleware, data middleware, message middleware, and security middleware. Common middleware products include embedded databases, OpenGL graphics processing software, Java middleware, virtual machines (VM), DDS/CORBA, and Hadoop.
  • Application Layer, including different application software.

3) Characteristics

  • Customizability: Design methods include static compilation, dynamic libraries, and control function flow to achieve functional control.
  • Configurability: Design methods include data-driven, static compilation, and configuration tables.
  • Strong Real-Time Performance: Design methods include table-driven, configuration, static/dynamic combination, assembly language, etc.
  • Safety: Safety refers to the ability of the system to operate without accidents under specified conditions and time. Design methods include coding standards, safety assurance mechanisms, and FMECA (Failure Mode, Effects, and Criticality Analysis).
  • Reliability: Reliability refers to the ability of the system to perform the required functions within specified conditions and time periods. Design methods include fault tolerance techniques, redundancy techniques, and robust design.
  • High Determinism: Design methods include static resource allocation, boundary checking, state machines, static task scheduling, etc.

In summary, the development of embedded software differs significantly from traditional software development methods. When designing embedded systems, low-power design must be conducted, with key technologies including compilation optimization techniques, hardware/software co-design, and algorithm optimization.4. Hardware Architecture of Embedded Systems1) Composition StructureTraditional embedded systems mainly consist of embedded microprocessors, memory, bus logic, timers/counters, watchdog circuits, I/O interfaces, and external devices.2) Classification of Embedded Microprocessors

  • Microprocessor (Microprocessor Unit, MPU): Microprocessor + specially designed circuit board, low integration, high reliability, mainly including: Am186/88, 386EX, SC-400, PowerPC, 68000, MIPS, ARM series, etc.
  • Microcontroller (Microcontroller Unit, MCU) (Single-chip Microcontroller): Integrates core memory and some peripherals on-chip. Advantages include miniaturization, reduced power consumption and cost, and improved reliability. Includes 8501, P5IXA, MCS-251, MCS-96/196/296, C166/167, MC68HC05/11/12/16, 68300, and numerous ARM series.
  • Digital Signal Processor (Digital Signal Processing, DSP): Uses Harvard architecture, with special designs for system structure and instructions, suitable for executing large amounts of data processing. Includes TMS320 series (including C2000, C5000, C6000, C8000 series), DSP56000 series, real-time DSP processors, etc.
  • Graphics Processing Unit (Graphics Processing Unit, GPU): Significantly enhances floating-point computation capabilities and multi-core parallel computing capabilities compared to CPUs, thus commonly used for data computation in AI technologies and deep learning.
  • System on Chip (System on Chip, SoC): A system or product formed by combining multiple integrated circuits with specific functions on a single chip, containing a complete hardware system, such as processors, IP (Intellectual Property) cores, memory, etc., and the embedded software it carries, such as operating systems and custom user software.

3) Memory Classification

  • Random Access Memory (Random Access Memory, RAM). Requires continuous power supply for operation, can be read and written randomly.a. Dynamic Random Access Memory (Dynamic RAM, DRAM), uses capacitors to store information, advantages include high integration, large capacity, low cost, disadvantages include slower access speed, requires periodic refreshing. Commonly used as main memory.b. Static Random Access Memory (Static RAM, SRAM), uses multiple transistors to self-lock the state, advantages include fast access speed, no need for refreshing, disadvantages include low integration, small capacity, high cost. Commonly used as cache.
  • Read Only Memory (Read Only Memory, ROM), data stored will not be lost due to power failure, reading speed is faster than RAM, commonly includes the following types:a. Mask Read Only Memory (Mask Programmed ROM, MROM), advantages include low cost through mass production via masks, disadvantages include all data in the same batch being identical and unmodifiable, suitable only for mass production.b. Programmable Read Only Memory (Programmable ROM, PROM), can be programmed once using dedicated programming devices, suitable for small-scale production.c. Erasable Programmable Read Only Memory (Erasable Programmable ROM, EPROM), advantages include the ability to erase and rewrite data using ultraviolet light.d. Electrically Erasable Programmable Read Only Memory (Electrically Erasable Programmable ROM, EEPROM), advantages include the ability to erase written data using voltage, but the erasure speed is slow.e. Flash Memory, advantages include the ability to erase and write data online, with many erase cycles and fast speed, but reading speed is slow (relative to other ROM speeds).

Storage speed from fast to slow is as follows: register group, Cache, memory, Flash.4) Internal (External) Bus Logic

  • Based on the type of information transmitted, buses can be classified as follows.a. Data Bus, used for transmitting data that needs to be processed or stored.b. Address Bus, used to specify the address of the data stored in RAM.c. Control Bus, transmits signals from the microprocessor control unit to peripheral devices.
  • Based on the connected components, buses can be classified as follows.a. On-chip Bus, connecting internal components of the chip.b. System Bus or Board-Level Bus, connecting core components of the computer system.c. Local Bus, connecting a small number of local components.d. Communication Bus, the bus connecting the host to external devices.
  • According to the direction of data transmission, buses can be classified into simplex buses and duplex buses. Simplex buses can only transmit from one end to the other without reverse transmission; duplex buses can transmit in both directions. Duplex buses can be further divided into half-duplex buses and full-duplex buses. Half-duplex buses can only transmit alternately in both directions; full-duplex buses can transmit simultaneously in both directions.
  • According to the type of signals used by the bus, buses can be classified into parallel buses and serial buses. Parallel buses contain multiple transmission lines, allowing multiple bits of data to be transmitted simultaneously, but require high consistency and are suitable for short distances; serial buses use only one transmission line, transmitting one bit of data at a time, but can cover longer distances.

5. Safety Design of Safety-Critical Software

  • 1) Definition
  • IEEE defines safety-critical software as “software in a system that may lead to unacceptable risks”.
  • 2) Development Tool DO-178B Standard
  • The purpose of this standard is to provide guidance for the development of airborne software for airborne systems and equipment, enabling it to fulfill its intended functions while meeting safety levels that comply with airworthiness requirements.
  • DO-178B divides the software lifecycle into “Software Planning Process”, “Software Development Process”, and “Software Integration Process”, with the software development process further subdivided into software requirements process, software design process, software coding process, and integration process; the software integration process is subdivided into software verification process, software configuration management process, software quality assurance process, and certification liaison process.
  • In DO-178B, software safety levels are classified into five levels A to E based on the importance of the software in the system, corresponding to catastrophic (A), hazard (B), severe (C), non-severe (D), and no effect (E).

Leave a Comment