From 693d8b180c690601ce44d640352b0d44151edb76 Mon Sep 17 00:00:00 2001
From: Andrew <saintruler@gmail.com>
Date: Wed, 15 Apr 2020 15:02:38 +0400
Subject: =?UTF-8?q?*=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B8?=
 =?UTF-8?q?=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=B8=20=D0=B8=D0=B7?=
 =?UTF-8?q?=20=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?=
 =?UTF-8?q?=D1=8B=D1=85=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=20=D0=BF=D0=BE=20?=
 =?UTF-8?q?=D0=B0=D1=81=D0=B2=D1=82=20*=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BC?=
 =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?=
 =?UTF-8?q?=D0=B5=D0=BD=D1=82=D1=8B=20=D0=BF=D0=BE=20=D0=B0=D1=81=D0=B2?=
 =?UTF-8?q?=D1=82=20=D0=B2=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD?=
 =?UTF-8?q?=D1=83=D1=8E=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80?=
 =?UTF-8?q?=D0=B8=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../23_structure_of_cpu/23_structure_of_cpu.tex    | 499 +++++++++++++++++++++
 1 file changed, 499 insertions(+)
 create mode 100644 asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex

(limited to 'asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex')

diff --git a/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex b/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
new file mode 100644
index 0000000..278d636
--- /dev/null
+++ b/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
@@ -0,0 +1,499 @@
+\documentclass[bachelor, och, referat]{SCWorks}
+% параметр - тип обучения - одно из значений:
+%    spec     - специальность
+%    bachelor - бакалавриат (по умолчанию)
+%    master   - магистратура
+% параметр - форма обучения - одно из значений:
+%    och   - очное (по умолчанию)
+%    zaoch - заочное
+% параметр - тип работы - одно из значений:
+%    referat    - реферат
+%    coursework - курсовая работа (по умолчанию)
+%    diploma    - дипломная работа
+%    pract      - отчет по практике
+% параметр - включение шрифта
+%    times    - включение шрифта Times New Roman (если установлен)
+%               по умолчанию выключен
+
+\usepackage{subfigure}
+\usepackage{tikz,pgfplots}
+\pgfplotsset{compat=1.5}
+\usepackage{float}
+
+%\usepackage{titlesec}
+\setcounter{secnumdepth}{4}
+%\titleformat{\paragraph}
+%{\normalfont\normalsize}{\theparagraph}{1em}{}
+%\titlespacing*{\paragraph}
+%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
+
+\titleformat{\paragraph}[block]
+{\hspace{1.25cm}\normalfont}
+{\theparagraph}{1ex}{}
+\titlespacing{\paragraph}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\graphicspath{ {./images/} }
+\usepackage{tempora}
+
+\usepackage[sort,compress]{cite}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{amsthm}
+\usepackage{fancyvrb}
+\usepackage{listings}
+\usepackage{listingsutf8}
+\usepackage{longtable}
+\usepackage{array}
+\usepackage[english,russian]{babel}
+
+\usepackage[colorlinks=true]{hyperref}
+\usepackage{url}
+
+
+\newcommand{\eqdef}{\stackrel {\rm def}{=}}
+
+\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}}
+
+\newtheorem{lem}{Лемма}
+
+\begin{document}
+
+% Кафедра (в родительном падеже)
+\chair{}
+
+% Тема работы
+\title{Общая структура центрального процессора}
+
+% Курс
+\course{1}
+
+% Группа
+\group{131}
+
+% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
+\department{факультета КНиИТ}
+
+% Специальность/направление код - наименование
+%\napravlenie{09.03.04 "--- Программная инженерия}
+%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем}
+%\napravlenie{230100 "--- Информатика и вычислительная техника}
+%\napravlenie{231000 "--- Программная инженерия}
+\napravlenie{090301 "--- Компьютерная безопасность}
+
+% Для студентки. Для работы студента следующая команда не нужна.
+% \studenttitle{Студентки}
+
+% Фамилия, имя, отчество в родительном падеже
+\author{Гущина Андрея Юрьевича}
+
+% Заведующий кафедрой
+% \chtitle{} % степень, звание
+% \chname{}
+
+%Научный руководитель (для реферата преподаватель проверяющий работу)
+\satitle{доцент} %должность, степень, звание
+\saname{О.В. Мещерякова}
+
+% Руководитель практики от организации (только для практики,
+% для остальных типов работ не используется)
+% \patitle{к.ф.-м.н.}
+% \paname{С.~В.~Миронов}
+
+% Семестр (только для практики, для остальных
+% типов работ не используется)
+%\term{8}
+
+% Наименование практики (только для практики, для остальных
+% типов работ не используется)
+%\practtype{преддипломная}
+
+% Продолжительность практики (количество недель) (только для практики,
+% для остальных типов работ не используется)
+%\duration{4}
+
+% Даты начала и окончания практики (только для практики, для остальных
+% типов работ не используется)
+%\practStart{30.04.2019}
+%\practFinish{27.05.2019}
+
+% Год выполнения отчета
+\date{2020}
+
+\maketitle
+
+% Включение нумерации рисунков, формул и таблиц по разделам
+% (по умолчанию - нумерация сквозная)
+% (допускается оба вида нумерации)
+\secNumbering
+
+
+\tableofcontents
+
+% Раздел "Обозначения и сокращения". Может отсутствовать в работе
+
+
+% Раздел "Определения". Может отсутствовать в работе
+%\definitions
+
+% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе.
+% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения"
+% \defabbr
+
+% Раздел "Введение"
+% \intro
+\section{Общая структура центрального процессора}
+\subsection{Процессор}
+Центральный процессор -- это мозг компьтера. Его задача -- выполнять программы,
+находящиеся в основной памяти. Для этого он вызывает команды из памяти, определяет
+их тип, а затем выполняет одну за другой. Компоненты соединены \textbf{шиной},
+представляющей собой набор параллельно связанных проводов для передачи адресов,
+данных и управляющих сигналов. Шины могут быть внешними (связывающими процессор с
+памятью и устройствами ввода-вывода) и внутренними. Современный компьютер использует
+несколько шин. На рисунке \ref{fig:onecpu_comp} изображёна схема компьютера с одним
+процессором и двумя устройствами ввода-вывода.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics{image008.jpg}
+    \caption{Схема однопроцессорной системы}
+    \label{fig:onecpu_comp}
+\end{figure}
+
+Процессор состоит из нескольких частей. Блок управления отвечает за вызов команд
+из памяти и определение их типа. Арифметико-логическое устройство выполняет 
+арифметические операции (например, сложение) и логические операции (например,
+логическое И).
+
+\subsection{Устройство центрального процессора}
+Внутреннее устройство тракта данных типичного фон неймановского процессора 
+иллюстрирует рисунок \ref{fig:data-tract}. Тракт данных состоит из регистров 
+(обычно от 1 до 32), арифметико-логического устройства (АЛУ) и нескольких 
+соединительных шин. Содержимое регистров поступает во входные регистры АЛУ, 
+которые на рисунке \ref{fig:data-tract} обозначены буквами А и В. В них 
+находятся входные данные АЛУ, пока АЛУ производит вычисления.
+
+АЛУ выполняет сложение, вычитание и другие простые операции над входными данными
+и помещает результат в выходной регистр. Содержимое этого выходного регистра
+может записываться обратно в один из регистров или сохранятся в памяти, если
+это необходимо. Рисунок \ref{fig:data-tract} иллюстрирует операцию сложения. 
+Отметим, что входные и выходные регистры есть не у всех компьютеров.
+
+Большинство команд можно разделить на две группы: типа регистр-память и типа 
+регистр-регистр. Команды первого типа вызывают слова из памяти, помещают их 
+в регистры, где они используются в качестве входных данных АЛУ 
+(слова -- это такие элементы данных, которые перемещаются между памятью и 
+регистрами). Словом может быть целое число. Другие команды этого типа
+помещают регистры обратно в память.
+
+Команды второго типа вызывают два операнда из регистров, помещают их во 
+входные регистры АЛУ, выполняют над ними какую-нибудь арифметическую или 
+логическую операцию и переносят результат обратно в один из регистров.
+
+Этот процесс называется циклом тракта данных. В какой-то степени он 
+определяет, что может делать машина. Чем быстрее происходит цикл тракта 
+данных, тем быстрее компьютер работает.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics{tract_data.png}
+    \caption{Тракт данных обычной фон-неймановской машины}
+    \label{fig:data-tract}
+\end{figure}
+
+\subsection{Устройство управления}
+\textbf{Устройство управления} процессором -- блок, устройство, компонент
+аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. 
+Структурно устройство управления состоит из:
+\begin{itemize}
+    \item 
+        Блок генерации адресов инструкций. Он содержит в себе регистр
+        программного счётчика (program counter или instruction pointer), 
+        хранящий адрес считываемой из памяти инструкции, и модифицирующийся
+        после выборки каждой инструкции.
+    \item
+        Блок выборки инструкции, обеспечивающий считывание программ из памяти 
+        через устройство ввода-вывода. Он получает на вход адрес с блока генерации
+        адреса инструкции, передаёт его на УВВ, получает с него данные по 
+        переданному адресу, и выдаёт на блок декодирования интсрукций.
+    \item
+        Блок декодирования инструкций, производящий преобразование кодов инструкций в
+        последовательность кодов функций, передаваемые на исполнительные устройства.
+    \item
+        Блок переходов. Получает функциональные коды переходов и ветвлений, признаки
+         результатов операций с функциональных устройств, проверяет истинность условия
+          перехода, и передаёт сигнал на изменение программного счётчика.
+    \item
+        Блок обработки исключений. Принимает извне сигналы исключительных ситуаций 
+        (прерывания, ошибки узлов микропроцессора, нарушение привилегий, 
+        команды-ловушки и пр.) и передаёт сигнал на переход по вектору исключения 
+        в случае обнаружения.
+\end{itemize}
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{control_unit_block.png}
+    \caption{Обобщенная блок-схема устройства управления}
+    \label{}
+\end{figure}
+
+\subsection{Арифметико-логическое устройство}
+\textbf{Арифметико-логическое устройство} -- блок процессора, который под 
+управлением устройства управления (УУ) служит для выполнения арифметических
+и логических преобразований (начиная от элементарных) над данными, называемыми
+в этом случае операндами. Разрядность операндов обычно называют размером
+или длиной машинного слова. 
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{alu_block.png}
+    \caption{Обобщенная блок-схема арифметико-логического устройства}
+    \label{}
+\end{figure}
+
+Одноразрядное двоичное бинарное (двухоперандное) АЛУ с бинарным 
+(двухразрядным) выходом может выполнять до 
+${\displaystyle 2^{(2^{2})*2}=2^{8}=256}$ двоичных бинарных 
+(двухоперандных) функций (операций) с бинарным (двухразрядным) выходом.
+
+По способу действия над операндами АЛУ делят на:
+\begin{enumerate}
+    \item 
+        Параллельные -- операнды представляются параллельным кодом и 
+        операции совершаются одновременно над всеми разрядами операндов.
+    \item 
+        Последовательные -- операции над операндами производятся последовательно 
+        во времени над их отдельными разрядами.
+\end{enumerate}
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{alu.png}
+    \caption{Схема арифметико-логического устройства (АЛУ) К155ИП3}
+    \label{}
+\end{figure}
+
+\subsection{Регистры процессора}
+Внутри центрального процессора находится быстрая память небольшого объёма для 
+хранения промежуточных результатов и некоторых команд управления. Эта память
+состоит из нескольких регистров, каждый из которых выполняет определённую
+функцию. Обычно размер всех регистров одинаков. Каждый регистр содержит
+одно число в диапазоне, верхняя граница которого зависит от размера регистра.
+Операции чтения и записи с регистрами выполняются очень быстро, поскольку они
+находятся внутри центрального процессора.
+
+Самый важный регистр -- \textbf{счётчик команд}, который указывает, какую
+команду нужно выполнить следующей. Название ``счётчик команд'' выбрано неудачно,
+посколько он ничего не \textit{считает}, но этот термин употребляется повсеместно.
+Также есть \textbf{регистр команд}, в котором находится выполняемая в данный момент
+команда. У большинства компьютеров имеются и другие регистры, одни из них 
+многофункциональны, другие служат каким-либо определённым целям. Третьи регистры
+используются операционной системой для управления компьютером.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{registers_x86.png}
+    \caption{Регистры x86-совместимого процессора}
+    \label{}
+\end{figure}
+
+\subsection{Выполнение команд}
+Центарльный процессор выполняет каждую команду за несколько шагов.
+Он делает следующее:
+
+\begin{enumerate}
+    \item Вызывает следующую команду из памяти и переносит её в регистр команд.
+    \item
+        Меняет положение счётчика команд, который после этого/
+        указывает на следующую команду.
+    \item Определяет тип вызванной команды.
+    \item Если команда использует слово из памяти, определяет, где находится это слово.
+    \item Переносит слово, если это необходимо, в регистр центрального процессора.
+    \item Выполняет команду.
+    \item Переходит к шагу 1, чтобы начать выполнение следующей команды.
+\end{enumerate}
+
+Такая последовательность шагов 
+(\textbf{выборка} -- \textbf{декодирование} -- \textbf{исполнение})
+является основой работы всех компьютеров.
+
+\subsection{Интерпретаторы}
+Написание программ-интерпретаторов, которые имитируют работу процессора, 
+широко используется при разработке компьютерных систем. После того как 
+разработчики выбрали машинный язык (Я) для нового компьютера, они должны 
+решить, строить ли им процессор, который будет выполнять программы на 
+языке Я, или написать специальную программу для интерпретации программ 
+на языке Я. Если они решают написать интерпретатор, они должны создать 
+аппаратное обеспечение для выполнения этого интерпретатора. Возможны 
+также гибридные конструкции, когда часть команд выполняется аппаратным 
+обеспечением, а часть интерпретируется.
+
+Интерпретатор разбивает команды на маленькие шаги. Таким образом, машина 
+с интерпретатором может быть гораздо проще по строению и дешевле, чем 
+процессор, выполняющий  программы  без интерпретации. Такая экономия 
+особенно важна, если компьютер содержит большое количество сложных команд
+с различными опциями. В сущности, экономия проистекает из самой замены
+аппаратного обеспечения программным обеспечением (интерпретатором).
+
+Первые компьютеры содержали небольшое количество команд, и эти команды 
+были простыми. Но поиски более мощных компьютеров привели, кроме всего 
+прочего, к появлению более сложных команд. Вскоре разработчики поняли, 
+что при наличии сложных команд программы выполняются быстрее, хотя 
+выполнение отдельных команд занимает больше времени. 
+(В качестве примеров сложных команд можно назвать выполнение операций 
+с плавающей точкой, обеспечение прямого доступа к элементам массива и т.п.)
+Если обнаруживалось, что две определенные команды часто выполнялись
+последовательно одна за другой, то вводилась новая команда, заменяющая 
+работу этих двух.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics{ibm_701.jpg}
+    \caption{IBM-710 -- Один из первых компьютеров}
+    \label{}
+\end{figure}
+
+Сложные команды были лучше, потому что некоторые операции иногда 
+перекрывались. Какие-то операции могли выполняться параллельно, 
+для этого использовались разные части аппаратного обеспечения. 
+Для дорогих компьютеров с высокой производительностью стоимость этого
+дополнительного аппаратного обеспечения была вполне оправданна. 
+Таким образом, у дорогих компьютеров было гораздо больше команд, 
+чем у дешевых. Однако развитие программного обеспечения и требования
+совместимости команд привели к тому, что сложные команды стали использоваться
+и в дешевых компьютерах, хотя там во главу угла ставилась стоимость, а не
+скорость работы. 
+
+К концу 50-х годов компания IBM, которая лидировала тогда на компьютерном 
+рынке, решила, что производство семейства компьютеров, каждый из которых
+выполняет одни и те же команды, имеет много преимуществ и для самой компании,
+и для покупателей. Чтобы описать этот уровень совместимости, компания IBM
+ввела термин \textbf{архитектура}. Новое семейство компьютеров должно 
+было иметь одну общую архитектуру и много разных разработок, различающихся по
+цене и скорости, которые могли выполнять одну и ту же программу. Но как 
+построить дешевый компьютер, который будет выполнять все сложные команды, 
+предназначенные для высокоэффективных дорогостоящих машин?
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{IBM_S360.jpg}
+    \caption{IBM System/360}
+    \label{}
+\end{figure}
+
+Решением этой проблемы стала интерпретация. Эта технология, впервые предложенная
+Уилксом в 1951 году, позволяла разрабатывать простые дешевые компьютеры, которые,
+тем не менее, могли выполнять большое количество команд. В результате IBM создала 
+архитектуру System/360, семейство совместимых компьютеров, различных по цене и 
+производительности. Аппаратное обеспечение без интерпретации использовалось только 
+в самых дорогих моделях.
+
+\subsection{RISC и CISC}
+В конце 70-х годов проводилось много экспериментов с очень сложными командами, 
+появление которых стало возможным благодаря интерпретации. Разработчики 
+пытались уменьшить пропасть между тем, что компьютеры способны делать, и тем,
+что требуют языки высокого уровня. Едва ли кто-нибудь тогда думал о разработке
+более простых машин, так же как сейчас мало кто занимается разработкой менее 
+мощных операционных систем, сетей, редакторов и т. д. (к несчастью).
+
+В компании IBM группа разработчиков во главе с Джоном Коком противостояла 
+этой тенденции; они попытались воплотить идеи Сеймура Крея, создав экспериментальный
+высокоэффективный мини-компьютер 801. Хотя IBM не занималась сбытом этой машины, 
+а результаты эксперимента были опубликованы только через несколько лет, весть быстро
+разнеслась по свету, и другие производители тоже занялись разработкой подобных 
+архитектур.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{ibm801.jpg}
+    \caption{IBM-801}
+    \label{}
+\end{figure}
+
+В 1980 году группа разработчиков в университете Беркли во главе с 
+Дэвидом Паттерсоном и Карло Секвином начала разработку процессоров VLSI без 
+использования интерпретации. Для обозначения этого понятия они придумали термин 
+RISC и назвали новый процессор RISC I, вслед за которым вскоре был выпущен RISC II.
+Немного позже, в 1981 году, Джон Хеннеси в Стенфорде разработал и выпустил другую 
+микросхему, которую он назвал MIPS. Эти две микросхемы развились в коммерчески 
+важные продукты SPARC и MIPS соответственно.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.6\textwidth]{risc_2.jpg}
+    \caption{Чип RISC II}
+    \label{}
+\end{figure}
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{mips.jpg}
+    \caption{Чип MIPS}
+    \label{}
+\end{figure}
+
+
+
+В то время как разрабатывались эти простые процессоры, всеобщее внимание привлекало
+относительно небольшое количество команд (обычно их было около 50). 
+Для сравнения: число команд в DEC VAX и больших IBM в то время составляло от 200 
+до 300. RISC -- это сокращение от Reduced Instruction Set Computer -- компьютер 
+с сокращенным набором команд. RISC противопоставлялся CISC 
+(Complex Instruction Set Computer -- компьютер с полным набором команд). 
+В качестве примера CISC можно привести VAX, который доминировал в то время в 
+научных компьютерных центрах. На сегодняшний день мало кто считает, что главное 
+различие RISC и CISC состоит в количестве команд, но название сохраняется до сих пор.
+
+С этого момента началась грандиозная идеологическая война между сторонниками 
+RISC и разработчиками VAX, Intel и больших IBM. По их мнению, наилучший 
+способ разработки компьютеров -- включение туда небольшого количества 
+простых команд, каждая из которых выполняется за один цикл тракта данных,
+то есть берет два регистра, производит над ними какую-либо арифметическую или 
+логическую операцию и помещает результат обратно в регистр. В качестве аргумента
+они утверждали, что даже если RISC должна выполнять 4 или 5 команд вместо одной,
+которую выполняет CISC, притом что команды RISC выполняются в 10 раз быстрее 
+(поскольку они не интерпретируются), он выигрывает в скорости. Следует 
+также отметить, что к этому времени скорость работы основной памяти приблизилась 
+к скорости специальных управляющих постоянных запоминающих устройств, потому
+недостатки интерпретации были налицо, что повышало популярность компьютеров RISC.
+
+\begin{figure}[H]
+    \centering
+    \includegraphics[width=0.75\textwidth]{dec_vax.jpg}
+    \caption{Компьютер из серии DEC VAX}
+    \label{}
+\end{figure}
+
+
+% Раздел "Заключение"
+% \conclusion
+
+
+%Библиографический список, составленный вручную, без использования BibTeX
+%
+\begin{thebibliography}{99}
+    \bibitem{8086} \url{https://ru.bmstu.wiki/Intel_8086}
+    \bibitem{Tannenbaum} Э.Танненбаум "Архитектура компьютера" (6-e издание)
+    \bibitem{RISC} \url{http://users.ics.forth.gr/~kateveni/risc/index.html}
+    \bibitem{ALU} \url{https://digteh.ru/proc/ALU/}
+    \bibitem{IBM} \url{https://ru.wikipedia.org/wiki/IBM}
+\end{thebibliography}
+
+%Библиографический список, составленный с помощью BibTeX
+%\bibliographystyle{mdpi}
+\bibliographystyle{gost780uv}
+\bibliography{thesis}
+
+% Окончание основного документа и начало приложений
+% Каждая последующая секция документа будет являться приложением
+
+\appendix
+
+
+\end{document}
\ No newline at end of file
-- 
cgit v1.2.3

