WikiDer > Оптимальное программирование
В истории вычислительной техники оптимальное программирование, или же оптимальное кодирование Это практика размещения инструкций компьютерной программы в памяти, чтобы минимизировать время, которое машина тратит на ожидание инструкций. Он представляет исторический интерес в основном из-за конструкции многих ранних цифровых компьютеров.
Большинство ранних компьютеров использовали некоторую форму последовательной памяти, в основном память линии задержки или же магнитные барабаны в отличие от оперативная память в современных компьютерах слова в последовательной памяти доступны по одному; время, необходимое для доступа к определенному слову, зависит от «расстояния» между ним и словом, которое читается в данный момент. Если данная линия задержки удерживается п слова, среднее время, чтобы прочитать слово, будет слово раз. Без оптимального кодирования такая машина большую часть времени проводила бы в ожидании инструкций и данных.[1]
Чтобы обойти эту проблему, многие машины, особенно Алан Тьюрингс ТУЗ и его потомки, включали поле, определяющее адрес следующей инструкции, которая должна быть выполнена в их формате инструкции. Программист, использующий оптимальное кодирование, найдет время, необходимое для выполнения текущей инструкции, вычислит, как далеко за это время переместится система памяти, а затем поместит следующую инструкцию для программы в это место. Таким образом, когда текущая инструкция завершится и компьютер будет искать следующую, как указано в инструкции, эта ячейка памяти будет только прибывать и сможет быть прочитана немедленно. Например, если программист только что написал ДОБАВИТЬ инструкция по адресу 400, а ДОБАВИТЬ Для выполнения инструкции требовалось 4 слова, программист установил бы поле «Следующий адрес» инструкции равным 404 и поместил бы туда следующую инструкцию.
В Соединенных Штатах оптимальное кодирование чаще всего использовалось на IBM 650[2] и Бендикс Г-15. На обеих машинах были оптимизирующие ассемблеры (SOAP для IBM, POGO для Bendix), которые могли автоматизировать эту задачу.
Смотрите также
- Мел Кэй, который является автором одной особенно умной части оптимального программирования, вошедшей в компьютерную науку.
Рекомендации
- ^ Руководство по IBM SOAP
- ^ Кугель, Херб (22 октября 2001 г.). "IBM 650". Доктора Добба.