В доисторические компьютерные времена — оперативной памяти было мало, она была дорогой и это было реальной проблемой.
Проблема в том, что все программы описываются базовыми арифметико-логическими инструкциями (сложение, вычитание, и, или, ... 😐), и по архитектуре фон Неймана мы должны хранить их в закодированном виде в оперативной памяти.
Из-за этого, для экономии памяти появилась концепция реализованная в CISC архитектуре: набор базовых инструкций объединялся в одну сложную инструкцию процессора для решения определенной задачи - например расчёт факториала, или возведение числа в степень или что-нибудь в таком духе. Но для того, чтобы архитектура была унифицирована, даже базовые команды кодировались точно таким же способом.
А чё делать с ними дальше? Да в итоге не придумали ничего лучше, чем хранить такие инструкции в виде отдельной подпрограммы в медленной, но дешевой ROM памяти.
В качестве бонуса мы получали существенную экономию по RAM - вместо того, чтобы хранить в памяти пачку базовых инструкций, мы заменяем их инструкцией, которая будет интерпретироваться процессором на уровне микроархитектуры.
Этот "уровень микроархитектуры" по факту еще один уровень "абстракции" над аппаратной частью процессора.
Вместо того чтобы заниматься сраными логическими схемами и мутить сложную аппаратную муть - проще реализовать такие инструкции при помощи микрокода.
Микропрограмма состоит из базовых аппаратных инструкций. Так же появляется возможность изменять её в любой момент времени, в отличии от физических компонентов процессора, которые остаются неизменными навсегда.
Что из этого следует выделить?
1. Абстракция - наше всё, если б не она, мы бы все щас сидели перебирали ручками 0 и 1 пуская электроны по схеме.
2. Чуваки придумали как можно сэкономить оперативку хитрыми манипуляциями.
3. На уровне железа и микроархитектуры нет компиляции, есть только интерпретация (инфа чисто для компиляторо-дебилов, которые уверены, что лучше компиляции ничего не существует)
Post #615
20.2K

- 🔥 313
- 👍 74
- 🤡 65
- 🤔 7
- 👏 6
- 😁 5
- 🥱 5
- 🖕 4
- 👀 2
- 💩 1