Здравствуйте, elmal, Вы писали:
E>Про дополнительные регистры. 2 то их два. Но это не просто регистры, это специализированные регистры для поддержки дополнительного способа адресации. E>Там система команд расширена очень значительно, в результате код на z80 часто довольно значительно компактнее кода на i8080. А в условиях охрененно ограниченной и дорогой памяти это было важно.
Это всё интересно, но к советской информатике это уже не имеет отношения.
Течёт вода Кубань-реки куда велят большевики.
Re[2]: Несколько замечаний об истории советской информатики
Здравствуйте, bastrakov, Вы писали:
B>про "клише" так и не понял, но хочу кинуть пару камней. B>1) то, что кибернетика была лженаукой, уже нельзя вычеркнуть из истории. и это сильный тормозной фактор развития.
А в чем тут проявился тормоз в создании ЭВМ или как их называли тогда ЭСМ?
Вот сколько не смотрю на историю появления разных там первых МЭСМ и прочих, вижу что МЭСМ начала разрабатываться в 1948-м (!!!) году, не намного-то и позже США и никто разработки такого рода не тормозил ни тогда, ни в 50-х. Как раз в 60-х пошла идея, что нам проще слямзить на Западе, чем своё развивать.
Re[9]: Несколько замечаний об истории советской информатики
E>Их там не несколько штук, а несколько десятков штук. А на деле — чуть ли не в 2 раза больше.
Эти команды — манипуляция с битами и с дополнительными регистрами, без них вполне себе жить можно, а при надобности и пропатчить эти места при загрузке (но это уже потом стало широко использоваться). Про адресацию я не вспомнил — да. E>Теневая страница регистров используется софтом вовсю, ибо когда каждый такт на счету, никто не будет отказываться от дополнительных регистров. И даже если не используется.
Теневая страница регистров была придумана разработчиками Z80 исключительно для того чтобы не сохранять и стейт регистров при системных вызовах и востанавливать его потом назад. Прикладной програме туда нельзя было, так что это ничего не меняет.
E>Там есть команды относительного перехода относительно текущего счетчика команд. на +-128 байт, сама команда двухбайтовая. В z80 очень активно используется. Если что, в i8080 ничего такого нет, переход там всегда 3 байта занимает (если не считать команду программного прерывания RST), и одной этой новой команды достаточно чтоб ни черта не работало.
В i8080 команды перехода — относительные, относительно PC — нынешний короткий джамп на x86 со знаковым 16 битным смещением, это он и есть.
E>Использовалось это все активно, и это позволяло не только экономить память, но и писать программы, которые сразу же штатно работают загруженными по любому адресу памяти, без всяких таблиц трансляции адресов.
Ну а можно было и с битовой табличкой патчить адреса — это в принципе до сих пор так и осталось, хотя использовалось в последний раз в DOS.
E>Про дополнительные регистры. 2 то их два. Но это не просто регистры, это специализированные регистры для поддержки дополнительного способа адресации. E>Там система команд расширена очень значительно, в результате код на z80 часто довольно значительно компактнее кода на i8080. А в условиях охрененно ограниченной и дорогой памяти это было важно.
Ну ты сам посмотри — дополнительных команд только работы с двумя доп регистрами, манипуляции с битами, и, еще что-то по мелочи и всё.
Re[10]: Несколько замечаний об истории советской информатики
E>В i8080 команды перехода — относительные, относительно PC — нынешний короткий джамп на x86 со знаковым 16 битным смещением, это он и есть.
Так, это я кажется наврал, опкод у x86 другой.
Re[10]: Несколько замечаний об истории советской информатики
Здравствуйте, eskimo82, Вы писали:
E>Ну ты сам посмотри — дополнительных команд только работы с двумя доп регистрами, манипуляции с битами, и, еще что-то по мелочи и всё.
Это ни хрена не мелочи. Манипуляции с битами очень активно используются на практике. Это не современные компы, когда можно фигачить различный код в зависимости от того, поддерживаются ли определенные команды или нет. А в то время память была ограничен, каждый байтик был на счету, потому пользовались всеми возможностями, и затачивали под конкретный процессор. И писали сразу на асме.
Re[11]: Несколько замечаний об истории советской информатики
E>Это ни хрена не мелочи. Манипуляции с битами очень активно используются на практике. Это не современные компы, когда можно фигачить различный код в зависимости от того, поддерживаются ли определенные команды или нет. А в то время память была ограничен, каждый байтик был на счету, потому пользовались всеми возможностями, и затачивали под конкретный процессор. И писали сразу на асме.
В своё время я писал для Океана240 (там как раз KP580BM80A) и кое что перепаивал. Но по прежнему и до сих пор считаю, что персональные команды для манипуляции с одиночными битами не нужны.
Re[10]: Несколько замечаний об истории советской информатики
Здравствуйте, alpha21264, Вы писали:
A>Это всё интересно, но к советской информатике это уже не имеет отношения.
Это все к тому, что массовая советская информатика для простых людей — это клоны pdp11 и intel8080. А самая массовая — это были вообще программируемые калькуляторы, да и те хрен купишь. И если в буржундиях массово это все появилось в начале 80-х годов, то в СССР начало что то двигаться в начале 90-х.
Какие то отдельные разработки, заслуживающие внимания — да, были. Но именно компьютерной революции СССР не застал вообще, это случилось уже в России.
Re[8]: Несколько замечаний об истории советской информатики
Здравствуйте, eskimo82, Вы писали:
Q>>Z80 хотя и сделан на основе 8080, но система команд у него совершенно другая. Не говоря уже о таких "мелочах", как одно питание вместо трех. Поэтому нельзя говорить о том, что аналог Z80 — KP580BM80A.
E>Питание — совершенно не при чем, хоть трехфазное — софту пофигу.
Это означает, что его нельзя назвать аналогом. Аналог — это когда впаиваешь его вместо оригинала и он работает точно так же. Так вот аналог KP580BM80A — это 8080, а Z80 — это совершенно другой процессор.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re[9]: Сравнение опкодов Z80 vs i8080 (KP580BM80A)
Здравствуйте, eskimo82, Вы писали:
Q>>>Z80 хотя и сделан на основе 8080, но система команд у него совершенно другая. E>Даже книжку откапывать не пришлось, вот сравнительная таблица — система команд одинаковая, но расширеная. Дополнительные команды — это все-то манипуляция с дополнительными регистрами и тесты битов.
Значит меня сбили с толку мнемоники — они другие, поэтому я думал что и система команд другая.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re[5]: Несколько замечаний об истории советской информатики
Здравствуйте, alpha21264, Вы писали:
A>Ну вообще-то я имел в виду твоё мнение по поводу курса рубля и рыночной экономики.
А по этому поводу тебе лучше вообще скромно помалкивать.
Q>>А что не так с лженаукой кибернетикой? Это Гайдар придумал? А я помню, что слышал об этом еще в школе.
A>Да, это Гайдар придумал. A>Вот в этом ты весь. Вопиющая безграмотность. Ты бы хоть Википедидию почитал.
Альфа, пойми наконец, что мне не надо читать википедию потому что я тогда жил и читал о том, что цифровая электроника долгое время не развивалась (читай: не копировалась) как раз из-за того, что некоторые умники объявили кибернетику буржуазной лженаукой. И спорить можно лишь о том правда ли там писалась или нет, но это писалось в советских журналах 70-х годов, я это читал лично! А дыма без огня, как известно, не бывает.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re[12]: Несколько замечаний об истории советской информатики
Здравствуйте, eskimo82, Вы писали:
E>В своё время я писал для Океана240 (там как раз KP580BM80A) и кое что перепаивал. Но по прежнему и до сих пор считаю, что персональные команды для манипуляции с одиночными битами не нужны.
Это сейчас они не нужны. А тогда они были нужны и еще как:
1) Для вывода чего то на экран
2) В условиях ограничений памяти, когда каждый байт на счету, в один байт упаковывали достаточно много флагов сразу. Сейчас уже такими техниками не пользуются.
Ну занимает булев флаг порядка 50 байт, да и черт с ним, памяти достаточно. Нужно битовый массив — так и хреначим массив объектов, которые являются оберткой над целочисленным типом. А тогда даже байт на булев флаг считалось крайним расточительством. Потому упаковывали все как только можно. А тогда было хреново одновременно и с объемом памяти, и со скоростью процессора. Потому на вот такие дополнительные команды молились, ибо они значительно ускоряли работу и делали программу более компактной, а значит можно было больше данных в памяти уместить.
Не следует то время сравнивать с текущим. Сейчас на ассемблере практически никто не пишет. Уже даже на GPU на плюсах программируют. И у каждого GPU под 1000 процессоров, с частотой под гигагерц, гигабайты памяти доступны, и инструкции таковы, что даже синусы косинусы вычисляются аппаратно практически за такт. А тогда даже целочисленное умножение считалось крайне дорогой операцией, приходилось подпрограммы писать для этого дела.
Re[13]: Несколько замечаний об истории советской информатики
E>>В своё время я писал для Океана240 (там как раз KP580BM80A) и кое что перепаивал. Но по прежнему и до сих пор считаю, что персональные команды для манипуляции с одиночными битами не нужны. E>Это сейчас они не нужны. А тогда они были нужны и еще как: E>1) Для вывода чего то на экран E>2) В условиях ограничений памяти, когда каждый байт на счету, в один байт упаковывали достаточно много флагов сразу.
Много битовых флагов в одном байте или слове разруливаются другими техниками. А персональные команды работы с одиночными битами — это мрачные отголоски CISC подхода, который слава богу, уже помер.
История уже поставила все точки на i.
E>Сейчас уже такими техниками не пользуются.
Пользуются (Вы скорее всего просто не в курсе), и очень активно, но команды для персональной работы с одним битом не нужны.
E>Ну занимает булев флаг порядка 50 байт, да и черт с ним, памяти достаточно. Нужно битовый массив — так и хреначим массив объектов, которые являются оберткой над целочисленным типом. А тогда даже байт на булев флаг считалось крайним расточительством. Потому упаковывали все как только можно. А тогда было хреново одновременно и с объемом памяти, и со скоростью процессора. Потому на вот такие дополнительные команды молились, ибо они значительно ускоряли работу и делали программу более компактной, а значит можно было больше данных в памяти уместить.
Мне не надо напомнинать про 32К памяти — я все прекрасно помню. CISC подход наоборот увеличивает размер программы. Сравните код x86 и ARM32, будете удивлены.
E>Не следует то время сравнивать с текущим. Сейчас на ассемблере практически никто не пишет.
Пишут и очень много, но не везде, а там где требуется. Во всяких embedded — еще как пишут.
E>Уже даже на GPU на плюсах программируют.
На расширеном подмножестве С, если быть точным. У GPU нет стека (вообще нет) поэтому там не очень традиционный подход.
E>И у каждого GPU под 1000 процессоров, с частотой под гигагерц, гигабайты памяти доступны, и инструкции таковы, что даже синусы косинусы вычисляются аппаратно практически за такт.
Это все немного не так, но да ладно.
E>А тогда даже целочисленное умножение считалось крайне дорогой операцией, приходилось подпрограммы писать для этого дела.
Целочисленое умножение — не самая медленая операция, есть еще и деление. Ну а подпрограммы писались потому что соответсвующая команда целочисленого умножения отсутсвовала. Сейчас, кстати, тоже пишут подпрограммы для целочисленого умножения и деления для типов большей разрядности чем может обрабатывать CPU, так что ничего особо не поменялось.
Re[2]: Несколько замечаний об истории советской информатики
Здравствуйте, bastrakov, Вы писали:
B>1) то, что кибернетика была объявлена лженаукой, уже нельзя вычеркнуть из истории. и это сильный тормозной фактор развития.
Fixed
Re[3]: Несколько замечаний об истории советской информатики
Здравствуйте, LaptevVV, Вы писали:
LVV>При этом Непейвода сообщает. что наши были у Цузе и кое-что у него явно слямзили... LVV>Как-то это не очень стыкуется с объявлением кибернетики лженаукой.
Тем не менее, статья такая была в БСЭ 50-х годов. Сам читал. К сожалению, сейчас доступа к той энциклопедии у меня нет, не могу привести точные координаты статьи. Возможно, ее объявили лженаукой для масс, а в узких кругах понимали все значение работ Тьюринга и других.
Re[14]: Несколько замечаний об истории советской информатики
Здравствуйте, eskimo82, Вы писали:
E>Много битовых флагов в одном байте или слове разруливаются другими техниками. А персональные команды работы с одиночными битами — это мрачные отголоски CISC подхода, который слава богу, уже помер. E>История уже поставила все точки на i.
Вот только что intel8080, что z80 — это все вполне себе CISC. Про x86, который снаружи живее всех живых даже говорить смысла нет — там сейчас сверхсложная система команд снаружи, хоть и RISC внутри, уже вообще без поллитра не разобраться. Как то массовых производительных RISC процессоров сейчас не ахти. Рулят то немеряно в плане энергоэффективности, но в плане скорости все пока слабо. И что то я не наблюдаю перспектив смерти x86. Может быть Apple то и перейдет с интела на RISC, вроде планы есть у них, да и опыт перехода имеется. Майкрософт попыталась, и пока не получается у нее, RT планшеты не очень покупают, предпочитают атомы а не АРМ. Но пока x86 архитектура не загибается, лет 5-10 еще точно протянет.
E>Мне не надо напомнинать про 32К памяти — я все прекрасно помню. CISC подход наоборот увеличивает размер программы. Сравните код x86 и ARM32, будете удивлены.
Ха, x86. Так это минимум 16 битный процессор, а сейчас уже 64 битные. И для скорости там выравнивание применяют по границу слова (а для 64 бит и двойного слова кажись), что расточительно черти как. Естественно, что при такой битности сейчас RISC рулит, ибо декодирование команд тривиально. Вот только в 80-е годы процессоры были 8 и 16 битными. 8 битный RISC сделать весьма проблематично, слишком мало команд в 8 бит влезет, а 16 бит на команду расточительно. А вот 16 битные RISC были, тот же PDP-11. Ну и как с размером программ на БК-0010? Тот же z80 это все рвет как тузик грелку, несмотря на 8 битность.
Re[15]: Несколько замечаний об истории советской информатики
E>>Много битовых флагов в одном байте или слове разруливаются другими техниками. А персональные команды работы с одиночными битами — это мрачные отголоски CISC подхода, который слава богу, уже помер. E>>История уже поставила все точки на i. E>Вот только что intel8080, что z80 — это все вполне себе CISC. Про x86, который снаружи живее всех живых даже говорить смысла нет — там сейчас сверхсложная система команд снаружи, хоть и RISC внутри, уже вообще без поллитра не разобраться. Как то массовых производительных RISC процессоров сейчас не ахти. Рулят то немеряно в плане энергоэффективности, но в плане скорости все пока слабо. И что то я не наблюдаю перспектив смерти x86.
При чём здесь смерть x86 ? Речь идет о том что CISC в процессе эволюции CPU была отвергнута и похоронена. И даже Intel со своей x86 перешел на RISC микроядро транслируя CISC команды x86 в RISC подрограммы.
Но пока x86 архитектура не загибается, лет 5-10 еще точно протянет. E>Она внутри RISC уже давно. Аппаратный транслятор там для совместимости.
E>>Мне не надо напомнинать про 32К памяти — я все прекрасно помню. CISC подход наоборот увеличивает размер программы. Сравните код x86 и ARM32, будете удивлены. E>Ха, x86. Так это минимум 16 битный процессор, а сейчас уже 64 битные.
Я имел ввиду 32 битный x86 (а он опкодами от 16 битового не отличается, кстати).
E>И для скорости там выравнивание применяют по границу слова (а для 64 бит и двойного слова кажись), что расточительно черти как. Естественно, что при такой битности сейчас RISC рулит, ибо декодирование команд тривиально.
Код x86 не выравнивается ни по каким границам.
E>Вот только в 80-е годы процессоры были 8 и 16 битными. 8 битный RISC сделать весьма проблематично, слишком мало команд в 8 бит влезет, а 16 бит на команду расточительно.
1) Z80 и i8080 — это 16 битовые процессоры. 2) RISC набор команд как раз в 8бит влезает. Reduced Instruction Set вообще то по определению.
E>А вот 16 битные RISC были, тот же PDP-11.
WTF ?
E>Ну и как с размером программ на БК-0010? Тот же z80 это все рвет как тузик грелку, несмотря на 8 битность.
БК-0010 была основана на К1810ВМ86/К1810ВМ88 — это аналоги i8086/i8088, натуральный CISC. Ты о чем спросить то хотел ?
Re[16]: Несколько замечаний об истории советской информатики
E>>Ну и как с размером программ на БК-0010? Тот же z80 это все рвет как тузик грелку, несмотря на 8 битность. E>БК-0010 была основана на К1810ВМ86/К1810ВМ88 — это аналоги i8086/i8088, натуральный CISC. Ты о чем спросить то хотел ?
Да ежшкин код, чтож такое. Все нафиг перепутал. Ну да другая там не x86 микросхема была, совместима с PDP-11. Но PDP-11 ни разу не RISC.
Re[17]: Несколько замечаний об истории советской информатики