Принципы организации компьютера

Организация компьютеров (Принципы организации компьютеров) — один из основных курсов специальности «Компьютерные науки и технологии».

Организация компьютеров в первую очередь изучает состав и принципы работы различных аппаратных компонентов внутри компьютерной системы, а также то, как они координируются для выполнения программы.

Изучая принципы организации компьютеров, вы поймёте, почему процессор может выполнять программы, как память хранит данные, как выполняются команды, и весь процесс работы компьютера от включения до запуска программы.

В этом руководстве используется большое количество примеров и диаграмм, чтобы помочь читателям сформировать целостную систему базовых знаний о внутреннем устройстве компьютера, заложив прочную основу для изучения таких курсов, как операционные системы, принципы компиляции, базы данных и компьютерные сети.


Что такое принципы организации компьютеров?

Принципы организации компьютеров в основном изучают состав и механизмы работы аппаратных систем компьютера. Они находятся между цифровыми схемами и архитектурой компьютера и являются важной основой для понимания механизмов работы современных компьютеров.

Они сосредоточены на том, как различные компоненты компьютера работают вместе, включая такие ключевые компоненты, как центральный процессор (ЦП), память, устройства ввода-вывода, шины и контроллеры.

  • Понять внутреннюю аппаратную структуру компьютера
  • Освоить процесс выполнения программ в компьютере
  • Изучить принципы работы ключевых компонентов, таких как ЦП, память и шина.
  • Понять ключевые технологии, такие как система команд, конвейеризация, прерывания и кэш.
  • Заложить основу для изучения операционных систем, принципов компиляции и встраиваемой разработки.

Для кого этот урок?

Это руководство подходит для студентов компьютерных специальностей и разработчиков, желающих глубоко понять базовые принципы работы компьютеров.

  • Студенты, обучающиеся по специальности «Компьютерные науки и технологии»
  • Инженеры-разработчики программного обеспечения
  • Для учащихся, готовящихся к вступительным экзаменам в магистратуру, экзаменам на государственную службу или экзаменам на уровень владения компьютером.
  • Для разработчиков, желающих глубоко понять механизмы работы процессора и памяти.
  • Для инженеров, занимающихся операционными системами, компиляторами и встраиваемой разработкой.

Предварительные требования для этого руководства

Перед изучением этого руководства рекомендуется иметь базовые знания о компьютерах, которые помогут вам лучше понять аппаратные системы компьютера.

  • Основы компьютера
  • Основы языка C или Python
  • Способы представления в двоичной, десятичной и шестнадцатеричной системах счисления.
  • Основы цифровой логики (достаточно понимания).
  • Умение уверенно работать с компьютером для разработки программ.

Компоненты компьютерной системы

Полная компьютерная система обычно состоит из аппаратной системы и программной системы, где аппаратная система в основном включает следующие части:

                 计算机系统
                     │
        ┌────────────┴────────────┐
        │                         │
    硬件系统                  软件系统
        │
 ┌──────┼──────────────┐
 │      │      │       │
CPU   存储器   输入设备  输出设备
 │
 ├── 运算器(ALU)
 ├── 控制器(CU)
 └── 寄存器(Register)


Первый пример организации компьютера

Ниже приведена простая программа на C. Она выглядит как всего одна строка кода, но внутри компьютера она проходит через несколько процессов, таких как компиляция, загрузка, выборка, декодирование и выполнение.

Пример

#include <stdio.h>

int main()
{
    printf("Hello World!\n");
    return 0;
}

Во время выполнения программы процесс примерно проходит следующие шаги:

  • Исходный код компилируется в машинные команды
  • Загрузка программы в память
  • ЦП извлекает команды из памяти (Fetch).
  • Устройство управления декодирует (Decode)
  • Арифметическое устройство выполняет команды (Execute).
  • Результат записывается обратно в регистр или память (Write Back)

Справочная документация

  • Организация и проектирование компьютеров David A. Patterson, John L. Hennessy
  • Компьютерные системы: взгляд программиста (CSAPP) Randal E. Bryant, David R. O'Hallaron
  • Принципы организации компьютеров (Тан Шофэй)
  • Руководство разработчика программного обеспечения по архитектурам Intel® 64 и IA-32
  • Справочное руководство по архитектуре ARM
Другие расширения