summaryrefslogtreecommitdiff
path: root/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2020-04-15 15:02:38 +0400
committerAndrew <saintruler@gmail.com>2020-04-15 15:02:38 +0400
commit693d8b180c690601ce44d640352b0d44151edb76 (patch)
tree65c8f3836e6fe7fa23b8a85770fc43cd2cd16288 /asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
parent25f4267e827b0e61c36e43d5c064f6cf381f6134 (diff)
* Добавил исходники из лабораторных работ по асвт
* Переместил документы по асвт в отдельную директорию
Diffstat (limited to 'asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex')
-rw-r--r--asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex499
1 files changed, 499 insertions, 0 deletions
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