@david_shiko

Как процессор исполняет инструкции?

Как в процессоре реализовано исполнение команд?
Я знаю схему простого компьютера. Его элементы, АЛУ, регистры, кэш, декодирование команд, разбиение их на элементарные операции (о них и речь, как они выполняются?).

Возьмем команду JNE (jump not equal). Что бы ее исполнить, процессор должен взять результат cmp и послать $eip, счетчику команд (моторчику) новый импульс, равный метке.
Как моторчик посчитает, сколько импульсов он получил, его либо нужно связать с АЛУ, либо встроить собственный счетчик импульсов. И это только 1 команда. Как процессор поймет, что ему делать, когда он получит другую команду, PUSH например (ее двоичный код, условно 11110000) ?
Если жестко забить ~400 x86 команд, то получится очень сложная архитектура. Следовательно, должен быть какой то интерпретатор, про который я слышал, но не смог найти информации. Получается рекурсия, интерпретатор команд для ассемблерных команд.
Если кто то знает книги по тематике "как собрать компьютер из транзисторов и установить туда простейшую ОС", то буду признателен.
Я читал книги Таненбаума и "Код, тайный язык информатики", понял не все.
Прошу прощения, что все намешано в кашу.
  • Вопрос задан
  • 996 просмотров
Решения вопроса 1
@pfg21
ex-турист
есть аппаратный дешифратор/декодер команд, он опкод команды преобразует в физические "импульсы" бегающие по проводам и управляющие работой "железных" модулей проца.
в современных процах чтобы не раздувать декодер команд (в каком-то x86 он начал занимать чуть ли не половину кристалла) , использут транслятор команд который команды x86 распиливает в набор простых команд risc-процессора и отправляет их исполнятся на железные risc-процессоры.
трансляция определяется микрокодом и работа процессора может быть изменена заменой микрокода.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Автор написал "Я знаю схему простого компьютера". Возможно он имел в виду что видел картинку или диаграмму.

Устройство работы процессоров изучают на курсах системотехники. И изучают их не с ассемблера а с логических элементов коньюнкции-дизьюнкции-инверсии. Шифраторы-дешифраторы мультиплексоры-демультиплексоры. Триггеры. Общий курс электроники.

Вобщем автору гуглить следующие теги : Электроника. Системотехника.

Там будет глубокое погружение. Deep dive.

А так вот с налёта и с наскока. Почитав про ассемблер - нельзя понять как работает CPU. Тоже самое что "порулив машиной" - нельзя понять принцип работы дизельного двигателя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы