Привествуювас уважаемый читатель. Мне кажется одной из первых фирм производителей персональных компьютеров была компания IBM. В данной теме хотелось бы коснуться этого производителя
Сегодня я хотел бы сказать несколько слов о такой малоизвестной у нас системе (компьютере и ОС) как IBM AS/400. Архитектура AS/400 интересна в первую очередь своей оригинальностью – по сути, она не имеет ничего общего с другими разработками IBM – System/3xx, PC и т.д. Начало AS/400 было положено в конце 70-х годов, когда появилась System/38 (System/36). В чем же основная идея архитектуры AS/400?
В первую очередь это отказ от ориентации на конкретную аппаратную платформу, что роднит эту систему с Java, хотя это сходство поверхностно. В отличие от Java, где основой являлась виртуальная машина – интерпретатор байткода, в AS/400 изначально был принят более эффективный подход – между железкой и программами находится прослойка, представляющая собой транслятор который перед выполнением программы переводит ее из промежуточного представления (SLIC – System Licensed Internal Code) в native код физического процессора (в современных моделях AS/400 это PowerPC, в старых – CISC процессоры). Мне могут возразить, что любая Java VM в наше время содержит JIT компилятор который на лету занимается примерно тем же, что и транслятор в AS/400. На это можно ответить вот что:
При создании Java VM набор инструкций разрабатывался исходя из расчета на интерпретацию. JIT компиляторы появились позднее, когда стало ясно что производительность интерпретатора не удовлетворяет запросам, что понятно – в шитом коде дополнительно на каждую инструкцию VM приходится как минимум ее выборка (эти проблемы можно легко наблюдать на примере языка Forth), не говоря уже о необходимости осуществлять на лету все проверки типа чтения/записи за границами переменных. Кроме того, часть функций которые принято считать высокоуровневыми (некоторые элементы обработки данных) в AS/400 реализованы на уровне SLIC (реализация SLIC по утверждению IBM – 3 млн строк кода, что говорит о его сложности). В Java VM же, виртуальные инструкции носят “элементарный” характер.
Сравнительно недавно IBM заявила о реализации Java на AS/400, подчеркивая эффективность этой реализации. Легко понять почему это так – по-видимому, JIT компилятор Java байткода в этом случае преобразует инструкции Java не в SLIC AS/400, а на прямую в код физического процессора. Таким образом (в теории) производительность Java приложений запускаемых на AS/400 не должна сильно отличаться от производительности “родных” приложений.
Другой интересной стороной архитектуры AS/400 является одноуровневая память (все устройства хранения адресуются одинаково, разницы между диском и ОЗУ нет). При этом адрес определяется 16-ю байтами.
Разумеется, как у всякой идеи, здесь есть свои недостатки. Производительность AS/400 на чисто вычислительных задачах (к которым сейчас относятся очень и очень многое) проигрывает чисто аппаратным решениям. В частности, я ни разу не видел сколько-нибудь внятных оценок производительности AS/400 по сравнению с другими системами. В то же время, архитектура позволяет организовывать многопроцессорные системы – как SMP так и MPP/кластеры. Применение AS/400 по большей части ограничено приложениями связанными с хранением и обработкой данных а также “коммерческими” расчетами.
Частично взято с сайта stfw.ru