446 lines
16 KiB
TeX
446 lines
16 KiB
TeX
\documentclass[12pt,a4paper,oneside]{article}
|
||
\usepackage[a4paper,left=2cm,right=1cm,top=2cm,bottom=2cm]{geometry}
|
||
|
||
\usepackage{polyglossia}
|
||
\setmainlanguage{russian}
|
||
\PolyglossiaSetup{russian}{indentfirst=true}
|
||
|
||
\usepackage{fontspec}
|
||
\defaultfontfeatures{Mapping=tex-text}
|
||
|
||
\usepackage{caption}
|
||
\DeclareCaptionLabelFormat{gost}{#1~\textbf{#2}.}
|
||
\DeclareCaptionLabelSeparator{gost}{~}
|
||
\captionsetup[figure]{
|
||
labelsep = gost,
|
||
labelformat = gost,
|
||
justification = centering,
|
||
font = {normalsize, bf},
|
||
position = bottom,
|
||
skip = 10pt
|
||
}
|
||
|
||
\captionsetup[table]{
|
||
labelsep = gost,
|
||
labelformat = gost,
|
||
justification = centering,
|
||
font = {normalsize, bf},
|
||
position = top,
|
||
skip = 5pt
|
||
}
|
||
|
||
\makeatletter
|
||
\@addtoreset{figure}{section}
|
||
\@addtoreset{table}{section}
|
||
\makeatother
|
||
|
||
\setmainfont{Times New Roman}
|
||
\setromanfont{Times New Roman}
|
||
\setsansfont{Arial}
|
||
\setmonofont{Courier New}
|
||
|
||
\usepackage{amsmath}
|
||
\newfontfamily{\cyrillicfont}{Times New Roman}
|
||
\newfontfamily{\cyrillicfontrm}{Times New Roman}
|
||
\newfontfamily{\cyrillicfonttt}{Courier New}
|
||
\newfontfamily{\cyrillicfontsf}{Arial}
|
||
|
||
\usepackage{graphicx}
|
||
\graphicspath{{img/}}
|
||
|
||
\usepackage{float}
|
||
\floatstyle{plaintop}
|
||
\restylefloat{table}
|
||
\usepackage{makecell}
|
||
\usepackage[table]{xcolor}
|
||
|
||
\begin{document}
|
||
|
||
\begin{titlepage}
|
||
\begin{center}
|
||
\begin{large}
|
||
Национальный исследовательский ядерный университет <<МИФИ>> \\
|
||
\vspace{0.25cm}
|
||
Институт интеллектуальных кибернетических систем \\
|
||
\vspace{0.25cm}
|
||
Кафедра №12 <<Компьютерные системы и технологии>>
|
||
\end{large}
|
||
|
||
\vspace*{1cm}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{minipage}[c]{0.2\textwidth}
|
||
\includegraphics[width=\textwidth]{logo_university}
|
||
\end{minipage}
|
||
\hfill
|
||
\begin{minipage}[c]{0.1\textwidth}
|
||
\includegraphics[width=\textwidth]{logo_institute}
|
||
\end{minipage}
|
||
\hfill
|
||
\begin{minipage}[c]{0.3\textwidth}
|
||
\includegraphics[width=\textwidth]{logo_department}
|
||
\end{minipage}
|
||
\end{figure}
|
||
|
||
\vspace{4cm}
|
||
|
||
\begin{huge}
|
||
\textbf{Курсовой проект}
|
||
\end{huge}
|
||
|
||
\begin{large}
|
||
\textbf{<<Проектирование процессора>>}
|
||
\end{large}
|
||
|
||
\vfill
|
||
|
||
\begin{flushright}
|
||
\begin{tabular}{ r l }
|
||
\textbf{Cтудент:} & Литвинов В.\,А. \\
|
||
\textbf{Группа:} & Б23-503 \\
|
||
\textbf{Преподаватель:} & Ядыкин И.\,М. \\
|
||
\end{tabular}
|
||
\end{flushright}
|
||
|
||
Москва --- 2025/2026
|
||
\end{center}
|
||
\end{titlepage}
|
||
|
||
\setcounter{page}{2}
|
||
\tableofcontents
|
||
\newpage
|
||
|
||
\section{Проектирование блока операций}
|
||
\subsection{Примеры и алгоритмы выполнения операций}
|
||
\subsubsection{Алгоритм операции УМНОЖЕНИЕ}
|
||
Умножение выполняется по алгоритму умножения с младших разрядов множителя и сдвигом суммы частичных произведений вправо с одним корректирующим шагом. Данный алгоритм при представлении сомножителей в прямом коде можно выразить следующей формулой:
|
||
|
||
$$[A]_{\text{п}} = a_3, a_2 a_1 a_0$$
|
||
|
||
\begin{equation}
|
||
[A]_{\text{п}} \cdot [B]_{\text{п}}=(..((0 + A \cdot b_0) \cdot p^{-1} + A \cdot b_1) \cdot p^{-1} + ... + A \cdot b_{n-1}) \cdot p^{3}
|
||
\end{equation}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
\makecell[l]{
|
||
Пример 1: \\
|
||
$[\mathrm{A}]_\mathrm{п} = 0.111 = 7$\\
|
||
$[\mathrm{B}]_\mathrm{п} = 0.111 = 7$\\
|
||
$\mathrm{Зн} = 0 \oplus 0 = 0$\\
|
||
$[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 0.0110001 = 49$
|
||
}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\centering
|
||
\begin{tabular}{c|c|c|c|c|c|c|c|c|c}
|
||
& & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\
|
||
& & 0 & 1 & 1 & 1 & & & & \makecell[l]{RB}\\ \hline
|
||
& 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \makecell[l]{RR = 0} \\
|
||
$b_0 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline
|
||
& 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & \makecell[l]{RR} \\
|
||
& 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR >> 1} \\
|
||
$b_1 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline
|
||
& 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & \makecell[l]{RR} \\
|
||
& 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & \makecell[l]{RR >> 1} \\
|
||
$b_2 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline
|
||
& 0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & \makecell[l]{RR} \\
|
||
$\mathrm{Знак}$&\cellcolor{lightgray}0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & \makecell[l]{RR >> 1}
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\end{figure}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
\makecell[l]{
|
||
Пример 2: \\
|
||
$[\mathrm{A}]_\mathrm{п} = 0.111 = 7$\\
|
||
$[\mathrm{B}]_\mathrm{п} = 1.101 = -5$\\
|
||
$\mathrm{Зн} = 1 \oplus 0 = 1$\\
|
||
$[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 1.0100011 = -35$
|
||
}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\centering
|
||
\begin{tabular}{c|c|c|c|c|c|c|c|c|c}
|
||
& & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\
|
||
& & 1 & 1 & 0 & 1 & & & & \makecell[l]{RB}\\ \hline
|
||
& 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \makecell[l]{RR = 0} \\
|
||
$b_0 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline
|
||
& 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & \makecell[l]{RR} \\
|
||
& 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR >> 1} \\
|
||
$b_1 = 0$ & \multicolumn{9}{l}{\text{пропуск такта суммирования}} \\ \hline
|
||
& 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR} \\
|
||
& 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & \makecell[l]{RR >> 1} \\
|
||
$b_2 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline
|
||
& 0 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & \makecell[l]{RR} \\
|
||
$\mathrm{Знак}$&\cellcolor{lightgray}1 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & \makecell[l]{RR >> 1}
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\begin{figure}[H]
|
||
\centering
|
||
Представим рассмотренный метод умножения в виде схемы алгоритма \\
|
||
\begin{minipage}[t]{\textwidth}
|
||
\centering
|
||
\includegraphics[width=0.6\textwidth]{bo-mut}
|
||
\caption{Блок схема умножения}
|
||
\label{bo-mut}
|
||
\end{minipage}
|
||
\end{figure}
|
||
|
||
\subsubsection{Проверка бита с установкой его в единицу}
|
||
Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение бита в операнде устанавливается в 1
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\makecell{
|
||
Пример 1: \\
|
||
$RA = 0000$ \\
|
||
$RB = 0001$ \\
|
||
$CF = 1$ \\
|
||
$RB = 0001$ \\ \\
|
||
Пример 2: \\
|
||
$RA = 0001$ \\
|
||
$RB = 0001$ \\
|
||
$CF = 0$ \\
|
||
$RB = 0011$
|
||
}
|
||
\makecell{
|
||
\begin{minipage}[t]{0.2\textwidth}
|
||
\centering
|
||
\includegraphics[width=\textwidth]{bo-set}
|
||
\caption{Блок схема проверки бита с установкой в единицу}
|
||
\label{bo-set}
|
||
\end{minipage}
|
||
}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsection{Функциональная схема блока операций}
|
||
Функциональная схема блока операций представлена на рис. \ref{bo-func}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{minipage}[t]{\textwidth}
|
||
\centering
|
||
\includegraphics[width=\textwidth]{bo-func}
|
||
\caption{Блок схема умножения}
|
||
\label{bo-func}
|
||
\end{minipage}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
В таблице \ref{bo-table} приведены все элементы функциональной схемы блока операций
|
||
\begin{table}[H]
|
||
\centering
|
||
\begin{minipage}[t]{\textwidth}
|
||
\centering
|
||
\begin{tabular}{|p{0.1\textwidth}|p{0.4\textwidth}|p{0.4\textwidth}|}
|
||
Обознач & Назначение УМНОЖЕНИЕ & ПРОВЕРКА БИТА \\ \hline
|
||
RA & Регистр 1-го операнда, 4 разряда, множимое, параллельная загрузка, хранение & позиция бита, параллельная загрузка \\ \hline
|
||
RB & Регистр 2-го операнда, 4 разряда, множитель, параллельная загрузка, хранение & регистр данных, параллельная загрузка \\ \hline
|
||
RR & Регистр результата, 8 разрядов, параллельная загрузка, хранение, сдвиг вправо на 1 разряд & новое значение регистра RB, 4 старших разряда, параллельная загрузка, хранение \\ \hline
|
||
RPR & & Регистр флага CF, 1 разряд, параллельная загрузка, хранение \\ \hline
|
||
КС1 & Выбор множимого: RB или RR[6:3]. Формирование сигнала F0 для МУУ & \\ \hline
|
||
КС2 & Формирование знака для КС3 & Новое значение RB с установленным битом для КС3. Формирование RPR \\ \hline
|
||
КС3 & Загрузка результата суммирования в RR[6:3] или знака в RR[7] & Загрузка нового значения RB с установленным битом в RR[6:3] \\ \hline
|
||
SM & 4-разрядный сумматор. Пропуск такта & \\ \hline
|
||
& &
|
||
\end{tabular}
|
||
\caption{Элементы функциональной схемы}
|
||
\label{bo-table}
|
||
\end{minipage}
|
||
\end{table}
|
||
|
||
\newpage
|
||
\subsection{Проектирование логических элементов блока операций}
|
||
\subsubsection{Регистр первого операнда RA}
|
||
|
||
Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра RA является регистр FD4CE
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов RA
|
||
\begin{tabular}{|c|c|}
|
||
\hline
|
||
Y0 & Назначение \\ \hline
|
||
0 & Хранение \\ \hline
|
||
1 & Загрузка \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.3\textwidth]{bo-ra}
|
||
\caption{Логическая схема RA}
|
||
\label{bo-ra}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\subsubsection{Регистр второго операнда RB}
|
||
|
||
Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра RB является регистр FD4CE
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов RB
|
||
\begin{tabular}{|c|c|}
|
||
\hline
|
||
Y0 & Назначение \\ \hline
|
||
0 & Хранение \\ \hline
|
||
1 & Загрузка \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.3\textwidth]{bo-rb}
|
||
\caption{Логическая схема RB}
|
||
\label{bo-rb}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\subsubsection{Регистр результата RR}
|
||
|
||
Данный регистр является 8-разрядным регистром с логическим сдвигом вправо на 1 разряд, хранением, параллельной загрузкой. Наиболее подходящим для реализации функции регистра RR является регистр SR8CLE
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов RR
|
||
\begin{tabular}{|c|c|c|}
|
||
\hline
|
||
Y5 & Y4 & Назначение \\ \hline
|
||
0 & 0 & Хранение \\ \hline
|
||
0 & 1 & Загрузка \\ \hline
|
||
1 & 0 & SHR \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.8\textwidth]{bo-rr}
|
||
\caption{Логическая схема RR}
|
||
\label{bo-rr}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\subsubsection{Регистр признака RPR}
|
||
|
||
Данный регистр является 1-разрядным с хранением и загрузкой. Наиболее подходящим для реализации функции регистра RPR является
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов RPR
|
||
\begin{tabular}{|c|c|}
|
||
\hline
|
||
Y7 & Назначение \\ \hline
|
||
0 & Хранение \\ \hline
|
||
1 & Загрузка \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.3\textwidth]{bo-rpr}
|
||
\caption{Логическая схема RPR}
|
||
\label{bo-rpr}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\subsubsection{Комбинационная схема КC1}
|
||
|
||
С помощью комбинационной схемы КС1 осуществляется выбор множимого из RB или RR[6:3], а также формируется сигнал F0 для МУУ
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов КС1
|
||
\begin{tabular}{|c|c|}
|
||
\hline
|
||
Y6 & Назначение \\ \hline
|
||
0 & Выбор RB \\ \hline
|
||
1 & Выбор RR[6:3] \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.8\textwidth]{bo-cs1}
|
||
\caption{Логическая схема КС1}
|
||
\label{bo-cs1}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\newpage
|
||
\subsubsection{Комбинационная схема КC2}
|
||
|
||
С помощью комбинационной схемы КС2 осуществляется формирование знака для операции умножени, формирование нового значения RB с установленным битом и формирование флага CF для операции установки бита
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.6\textwidth]{bo-cs2}
|
||
\caption{Логическая схема КС2}
|
||
\label{bo-cs2}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsubsection{Комбинационная схема КC3}
|
||
|
||
С помощью комбинационной схемы КС3 осуществляется загрузка промежуточной суммы в RR[6:3] и знака в RR[7] в операции умножения, нового значения RB с установленными битами в RR[6:3] в операции установки бита
|
||
|
||
\begin{minipage}{0.3\textwidth}
|
||
\centering
|
||
Таблица управляющих сигналов КС3
|
||
\begin{tabular}{|c|c|c|}
|
||
\hline
|
||
Y3 & Y2 & Назначение \\ \hline
|
||
0 & 0 & сумма в RR[6:3] \\ \hline
|
||
0 & 1 & знак RR[7] \\ \hline
|
||
1 & 0 & значение RB в RR[6:3] \\ \hline
|
||
\end{tabular}
|
||
\end{minipage}
|
||
\begin{minipage}{0.69\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.8\textwidth]{bo-cs3}
|
||
\caption{Логическая схема КС3}
|
||
\label{bo-cs3}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\newpage
|
||
\subsubsection{Сумматор SM}
|
||
|
||
4-разрядный, старшие разряды множимого и множителя, carry input установлены в 0
|
||
|
||
\begin{minipage}{\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=0.6\textwidth]{bo-sm}
|
||
\caption{Логическая схема SM}
|
||
\label{bo-sm}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
\newpage
|
||
\subsection{Логическая схема блока операций}
|
||
|
||
\begin{minipage}{\textwidth}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=\textwidth]{bo-scheme}
|
||
\caption{Логическая схема БО}
|
||
\label{bo-scheme}
|
||
\end{figure}
|
||
\end{minipage}
|
||
|
||
|
||
\end{document}
|