summaryrefslogtreecommitdiff
path: root/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
diff options
context:
space:
mode:
Diffstat (limited to 'abstracts/23_structure_of_cpu/23_structure_of_cpu.tex')
-rw-r--r--abstracts/23_structure_of_cpu/23_structure_of_cpu.tex499
1 files changed, 0 insertions, 499 deletions
diff --git a/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex b/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
deleted file mode 100644
index 278d636..0000000
--- a/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex
+++ /dev/null
@@ -1,499 +0,0 @@
-\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