diff options
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.tex | 499 |
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 |