Устройство центрального процессора. Регистровая память. Виды регистров. Цикл выполнения команды. RISC. CISC. Декодирование команды.
Центральный процессор — это мозг компьютера. Его задача — выполнять программы, находящиеся в основной памяти. Для этого он вызывает команды из памяти, определяет их тип, а затем выполняет одну за другой.
Процессор состоит из нескольких частей:
Блок управления отвечает за вызов команд из памяти и определение их типа.
Арифметико-логическое устройство выполняет арифметические операции (например, сложение) и логические операции (например, логическое И).
Внутри центрального процессора находится быстрая память небольшого объема для хранения промежуточных результатов и некоторых команд управления. Эта память состоит из нескольких регистров, каждый из которых выполняет определенную функцию.
Регистровая память - вид компьютерной оперативной памяти, модули которой содержат регистр между микросхемами памяти и системным контроллером памяти.
Виды регистров:
- Регистры памяти. Оперативная память компьютера конструируется в виде набора регистров памяти, которые служат только для хранения информации. Один регистр образует одну ячейку памяти, которая имеет свой адрес. Если в регистр входит n триггеров, то можно запомнить n бит информации.
- Счетчик команд – регистр устройства управления (УУ) процессора, хранит адрес выполняемой в данный момент команды, по которому она находится в оперативной памяти.
- Регистр команд – регистр УУ, служит для вычисления адреса ячейки, где хранятся данные, требуемые выполняемой в данный момент программе.
- Регистр флагов – регистр УУ, хранит информацию о последней команде, выполненной процессором.
Внутреннее устройство тракта данных типичного фон-неймановского процессора иллюстрирует рис. Тракт данных состоит из регистров (обычно от 1 до 32), арифметико-логического устройства (АЛУ) и нескольких соединительных шин. Содержимое регистров поступает во входные регистры АЛУ, которые на рис обозначены буквами A и B. В них находятся входные данные АЛУ, пока АЛУ производит вычисления. АЛУ выполняет сложение, вычитание и другие простые операции над входными данными и помещает результат в выходной регистр. Содержимое этого выходного регистра может записываться обратно в один из регистров или сохраняться в памяти, если это необходимо. Большинство команд можно разделить на две группы: команды типа регистр-память и типа регистр-регистр. Команды первого типа вызывают слова из памяти, помещают их в регистры, где они используются в качестве входных данных АЛУ. Другие команды этого типа помещают регистры обратно в память. Команды второго типа вызывают два операнда из регистров, помещают их во входные регистры АЛУ, выполняют над ними какую-нибудь арифметическую или логическую операцию и переносят результат обратно в один из регистров. Этот процесс называется циклом тракта данных.
Центральный процессор выполняет каждую команду за несколько шагов:
- Вызывает следующую команду из памяти и переносит ее в регистр команд.
- Меняет положение счетчика команд, который после этого указывает на следующую команду.
- Определяет тип вызванной команды.
- Если команда использует слово из памяти, определяет, где находится это слово.
- Переносит слово, если это необходимо, в регистр центрального процессора.
- Выполняет команду.
- Переходит к шагу 1, чтобы начать выполнение следующей команды.
Последовательность шагов (выборка — декодирование — исполнение)
является основой работы всех компьютеров.
RISC, CISC.
В 1980 году группа разработчиков в университете Беркли начала разработку не ориентированных на интерпретацию процессоров VLSI. Для обозначения этого понятия они придумали термин RISC, а новый процессор назвали RISC I, вслед за которым вскоре был выпущен RISC II.
В то время, когда разрабатывались эти простые процессоры, всеобщее внимание привлекало относительно небольшое количество команд (обычно около 50). Для сравнения: число команд в компьютерах VAX производства DEC и больших компьютерах производства IBM в то время составляло от 200 до 300.
Компьютер RISC (Reduced Instruction Set Computer — компьютер с сокращенным набором команд) противопоставлялся системе CISC (Complex Instruction Set Computer — компьютер с полным набором команд). В качестве примера машины типа CISC можно привести компьютер VAX, который доминировал в то время в университетской среде.
Декодирование команды
Предел количества запускаемых в секунду команд зависит от темпа декодирования отдельных команд. Декодирование команд позволяет определить, какие ресурсы им необходимы и какие действия нужно выполнить. Полезно все, что способствует упрощению этого процесса. Например, можно использовать единообразные команды с фиксированной длиной и с небольшим количеством полей. Чем меньше разных форматов команд, тем лучше.