Pull to refresh

Comments 86

Intel изготовила 4004, первый коммерчески доступный процессор на одной микросхеме

В русском языке обычно используют термин "микропроцессор". Он по тому и микро, что представляет собой одну микросхему

и предложил задействовать программируемый подход, в котором различные конфигурации моделей калькуляторов достигаются с помощью изменения программы.

Боже мой...

Busicom не сможет вытянуть цену

Простите, но читать дальше ваш отвратительный перевод я не смог. Тема интересная, но не в таком изложении

В русском языке обычно используют термин "микропроцессор". Он по тому и микро, что представляет собой одну микросхему

Вы это таким надменным тоном сообщаете, будто я не представляю, что такое микропроцессор.

Вы что сказать-то хотели? Ну кроме как поразить окружающих своими знаниями, конечно. Что мне нужно заменить в том фрагменте «процессор» на «микропроцессор»? Тогда получится повтор: «микропроцессор на одной микросхеме».

Или то, что мне нужно всю конструкцию заменить на «микропроцессор»? В таком случае вы просто не поняли смысл. Я намеренно расписываю в несколько слов, в чём достижение 4004.

Боже мой...

Пожалуйста, объясните суть претензии, а не картинно заламывайте руки.

перевод

Это не перевод, а самостоятельно написанный текст. Это такой троллинг — обзывать все подряд тексты переводами?

Кстати, в переводах ничего плохого нет. Не представляю, почему это стало ругательством.

Простите, но читать дальше ваш отвратительный перевод я не смог.

Пожалуйста, не пишите комментариев к публикациям, которые вы даже не удосужились дочитать. Вы тут цитируете какие-то фрагменты текста и не можете объяснить проблему, а только изображаете возмущение.

И вообще, на Хабре принято сообщать об ошибках в личку. Несколько лет назад даже прикрутили отправку сообщений об ошибках по Ctrl + Enter. Если так не делать, то первые комментарии будут заняты бесполезными сообщениями об уже исправленных опечатках и ошибках. Ну или вот такими театральными представлениями «текст настолько плохой, что мне поплохело».

Тогда получится повтор: «микропроцессор на одной микросхеме».

Можно просто написать «микропроцессор», не будет повтора.

Пожалуйста, объясните суть претензии, а не картинно заламывайте руки.

Объясняю: фраза выглядит как машинный перевод, особенно часть «различные конфигурации моделей достигаются». Как-то совсем неестественно для русского языка, как и «программируемый подход» в данном значении. Я бы предложил заменить тут эту фразу на «и предложил задействовать подход, при котором в разных моделях калькулятора применяется унифицированная аппаратная часть и варианты ПО». Что скажете?

Это не перевод, а самостоятельно написанный текст. Это такой троллинг — обзывать все подряд тексты переводами?

Я назвал этот текст переводом по тому что он выглядит как перевод. Во всяком случае его начало. Никакого троллинга.

Пожалуйста, не пишите комментариев к публикациям, которые вы даже не удосижились дочитать. Вы тут цитируете какие-то фрагменты текста и не можете объяснить проблему, а только изображаете возмущение.

Хорошо, проблему в моём её понимании объяснил.

И вообще, на Хабре принято сообщать об ошибках в личку.

Сообщил вам в личку об опечатке

Можно просто написать «микропроцессор», не будет повтора.

Я выше объяснил, почему предпочёл написать «процессор на одной микросхеме». Из моей формулировки немедленно понятно, что до 4004 процессоры были на нескольких ИС.

Чем больше смотрю, тем сильнее укрепляюсь во мнении, что у меня написано фантастически остроумно. Всего три слова, и мне уже не нужно приводить примеры по типу D200 фирмы Autonetics, центральный процессор которого состоял из 24 микросхем с МОП-транзисторами, или тот же CADC. У меня вообще текст про Z80, а не 4004, поэтому это детали лишние.

Ваша придирка — вкусовщина и попытка продемонстрировать свою эрудицию.

Объясняю: фраза выглядит как машинный перевод, особенно часть «различные конфигурации моделей достигаются».

Я вам обещаю, что в тексте нет ни одного предложения, который написал бы машинный переводчик или большая языковая модель.

Тот же ChatGPT физически не может так писать, даже если ему «скормить» несколько текстов на заданную тему. БЯМ с радостью пересказывают факты и дополняют, но осмысленно ничего не редактируют и не удаляют (потому что текст не понимают).

К примеру, в тексте присутствует минимально возможное количество имён. Остались только те, кто просуществовал хотя бы в двух абзацах. Машина так не умеет.

Я бы предложил заменить тут эту фразу на «и предложил задействовать подход, при котором в разных моделях калькулятора применяется унифицированная аппаратная часть и варианты ПО». Что скажете?

Я скажу, что упоминаний других калькуляторов попросту нет. Было намерение сделать такую систему с заделом на случай, если потребуется менять спецификации калькуляторов или встраивать полученную систему в другие продукты. В доступных мне источниках речь идёт только про 141-PF. Найти упоминания, что 4004 использовался хоть в одном другом калькуляторе, мне не удаётся.

Кстати, Busicom обанкротилась и закрылась в 1974 году. Этот факт я никуда не пристроил, поскольку все абзацы про 4004, 8080 и культуры Intel — это лишь предисловие к тому, почему возник Zilog.

Поменял «достигаются» на «получаются», но это опять вкусовщина.

Прочитал вашу переписку и у меня появилось такое предположение: автор, возможно, давно живет не в России и начал забывать русский язык. Это может быть причиной, по которой текст выглядит, как машинный (или непрофессиональный) перевод (все эти корявые "испытывал культуру стартапов", "начали, чтобы войти" и т.д.).

Но это, конечно, слабое оправдание. Статья опубликована в русскоязычном разделе Хабра и от автора ожидается владение русским языком хотя бы на уровне прилежного десятиклассника.

Поправил эти моменты, спасибо.

Но вообще да, признаю, похоже у вас действительно не перевод, а просто вы так написали странно. Прошу прощения, ошибся

А как тогда быть с МИКРОПРОЦЕССОРными комплектами 588, 1811,1804 и т.д? Что собирается из них?

Микропроцессоры с разрядно-модульной организацией 😀

В моём понимании - микропроцессорными комплектами обычно называют комплект, состоящий из собственно СБИС микропроцессора и набора микросхем для него - тактового генератора, ППА, таймеров и вот этого всего

Бывали микропроцессоры, состоящие из нескольких микросхем, но при этом не разрядно-модульной организации: просто в одну микросхему всё впихнуть не удавалось. По большому счёту, и 8086/8088 можно сюда притянуть, ведь математический сопроцессор был отдельной микросхемой -- просто основной ЦП без него работать мог. Но были процы PDP-11 и VAX-11, хоть ихние, хоть наши, где проц состоял таки из нескольких отдельных микросхем. Если память не изменяет, в СМ-1425 такой стоял (процессор включал две микросхемы, и обе являлись обязательными -- но это всё равно микро, если сравнивать, например, с СМ-1420, где что-то вроде 650 микросхем, включая 20 секций КР1804ВС1).

В общем, как по мне, термин "микропроцессор" не означает автоматически, что микросхема всего одна -- он, скорей, подразумевает, что: (1) микросхем очень мало -- в пределе, конечно, всего одна, и (2) эти микросхемы "заточены" под конкретную архитектуру, а не являются универсальными.

Бывали микропроцессоры, состоящие из нескольких микросхем

Да и сейчас есть. Например, в современных Ryzen логика, связанная с вводом выводом (контроллер памяти, контроллер PCI-E и прочее), вынесена в отдельную микросхему.

вынесена в отдельную микросхему

Именно отдельный чип, а не чиплет внутри основного сокета? С AMDшным железом мало знаком, но отдельный контроллер памяти на серверном процессоре сейчас выглядит странно.

Конечно же чиплет. Уже довольно давно и pci-e и память подключаются напрямую к чипу, с чиплетами или без.

Просто считать ли чиплет "отдельной микросхемой" - вопрос дискуссионный.

Ну, тут ещё сложности могут быть терминологические: что ещё считать процессором, а что -- уже нет? Скажем, классический 8080 и содранный с него наш К580ИК80/КР580ВМ80А -- законченные 8-разрядные микропроцессоры, и в таковом качестве используются в мелких компах. Однако для полного раскрытия возможностей нужны внешние схемы для дешифровки сигналов управления и нужны внешние буферы для повышения нагрузочной способности ног (чтоб можно было подключить достаточно много периферии), поэтому в "серьёзных" компах вокруг собственно процессора было ещё несколько микросхем.

То же самое актуально и сегодня, только названия меняются :) Например, упомянутый Вами контролер PCI-E к собственно процессору отношения всё-таки не имеет, но без него современный процессор использовать, по сути, нельзя.

Тогда собственно процессор - это вообще отдельное ядро, весь uncore уже обвязка )

Ну, собсно, ядро -- и есть процессор, остальное -- обвязка, да. Можно сравнить с самыми первыми Core 2, скажем, -- где контроллер памяти и тем более мосты были ещё снаружи, и проц связывался с ними по специальной шине.

контролер PCI-E к собственно процессору отношения всё-таки не имеет, но без него современный процессор использовать, по сути, нельзя.

Как вы думаете, в вашем телефоне есть pci-e? Я вот думаю, что нету в принципе.

Ну, во-первых, я говорил больше про ПК, где без PCI-E никуда; во-вторых, не факт, что в "телефонных" процах нет такого контроллера -- который вполне может не использоваться в конкретном конечном изделии, но физически иметься на кристалле; в-третьих, он может присутствовать и даже использоваться чисто внутреннее -- скажем, для подключения графпроцессора (хотя на ARMах в таком качестве куда вероятнее встретить AXI). Можно было бы ответить точно, если бы документация на "телефонные" процы была открыта, но увы... Но в некоторых похожих процах (мощных многоядерных Cortex-A) PCI-E предусмотрен (скажем, был, по меньшей мере. в части процов от Freescale, которую купил NXP: iMX 6 и др.)

Сразу сколько исключений-то и допущений появилось :)

Добавлю. Были еще микропроцессоры создаваемые по технологии Bit Slicing - это когда из микропроцессора 4-х битового собирают 8-м, 16-и и даже 32-х битовые процессоры (например, некоторые версии DEC PDP).

В конце статьи на Википедии есть такая интересная заметка:

Bit-sliced quantum computers

To simplify the circuit structure and reduce the hardware cost of quantum computers (proposed to run the MIPS32 instruction set) a 50 GHz superconducting "4-bit bit-slice arithmetic logic unit (ALU) for 32-bit rapid single-flux-quantum microprocessors was demonstrated".[19]

Ну, назвать проц от СМ-1420 микропроцессором нельзя никак -- целый ящик с примерно 650 микросхемами (это именно процессор, не вся машина! память -- отдельно, контроллеры устройств -- отдельно, и всё это занимает 2-3 стойки), но основа -- как раз секции, которые Вы упомянули. Так что микропроцессоры собрать на секциях нереально, управляющая логика и прочее требуют много чего дополнительного. Вот что они позволили резко сократить количество микросхем -- это да.

Я не знаю на чем была построена СМ-1420, но не думаю что это Bit Slicing. Я имел в виду набор Am2900 и вот эту машину:

VAX-11/730

Introduced in April 1982, the VAX-11/730, code-named "Nebula", is a still-more-compact, still-lower-performance bit slice implementation of the VAX architecture using AMD Am2900 chips for the CPU.

Там же пишут, что сссровский аналог имел индекс КР1804 и называлось это "наращиваемый микропроцессорный набор" или "микропроцессорная секция".

А вот тут есть интересная классификация:

Однокристальные микропроцессоры представляют собой реализацию всех аппаратных средств процессора в виде одной БИС/СБИС. Учитывая тот факт, что возможности однокристальных микропроцессоров ограничены аппаратными ресурсами кристалла и корпуса, получили распространение многокристальные микропроцессоры, а также многокристальные секционные микропроцессоры.

Многокристальный микропроцессор образуется путём разбиения логической структуры микропроцессора на функционально законченные части (деление «по горизонтали»), которые реализуются в виде БИС/СБИС. Функциональная законченность БИС многокристального микропроцессора означает, что его части выполняют заранее определенные функции и могут работать автономно, а для построения развитого процессора не требуется организации большого количества новых связей и каких-либо других электронных ИС БИС. (Пример — серия К581).

Микропроцессорная секция по сути является частью схемы процессора, получаемая при делении «по вертикали», что позволяет формировать систему необходимого уровня сложности (в простейшем случае — увеличить разрядность) из набора секций-элементов. Пример для построения готовых систем — К589ИК02 и К1804ВС1.

Как видите, согласно ГОСТу всё это разновидность микропроцессоров. ;-)

UPD: Прочитал про СМ-1420, её процессор собран на множестве секций КР1804ВС1, т.е. это Bit Slicing CPU.

Основа проца ЭВМ СМ-1420 -- 20 секций КР1804ВС1, содранных с Am2901, т.е. как раз тот случай, про который Вы говорите. Четыре секции были в основном проце, а остальные 16 -- в ППЗ (FPU).

Ну а насчёт ГОСТа -- о терминах не спорят, о терминах договариваются :) Но считать микропроцессором бандуру в 650 микросхем -- всё ж перебор, не находите? Кстати, схемы проца СМ-2420.01 имеются, так что можете сами полюбоваться.

Текст читается очень тяжело. Вроде и связный, совсем шизофазией не назовёшь, но постоянно глаз спотыкается о нелепые обороты ("значительно другую", "пророчили заменить"), огрызки фраз ("на продажникам", "В марте 141-PF готов."), просто непонятные галлюцинации утверждения (соорудил из 4004 тестовую установку для производства 4004).

Хотелось бы попросить автора уважительнее относиться к читателям и хотя бы один раз прочитать свое произведение перед публикацией.

"значительно другую", "пророчили заменить"

"на продажникам", "В марте 141-PF готов."

Спасибо, поправил эти фрагменты.

непонятные галлюцинации утверждения (соорудил из 4004 тестовую установку для производства 4004

Это не галлюцинация, это факт из печатного (а не онлайнового) источника (DOI 10.1109/40.546561, есть на Sci-Hub). Внутри Intel считалось, что из-за, насколько я понимаю, архитектуры памяти 4004 годится только для калькуляторов. Фаджин собрал production tester для 4004 и включил туда экземпляр 4004 в качестве контроллера.

Спасибо, перефразировал этот фрагмент, чтобы было понятней.

Хотелось бы попросить автора уважительнее относиться к читателям и хотя бы один раз прочитать свое произведение перед публикацией.

До публикации вычитываю хотя бы два раза с небольшими перерывами, но вот как получается.

на этой почве захотелось поностальгировать по LD HL,16384 и всяческим DI:HALT но как вспомню число регистров и по десятку тактов на команду .. и архитектура AVR снова становиться пиком совершенства, CLI:SLEEP есть

Подскажите, а есть платочки типа arduino для eZ80, Z180 или чего нить в этом духе?

На маузере не так давно попадались девкиты для них, и кстати w65c02 тоже

архитектура AVR

Все же между AVR и Z80 четверть века. Я вот помню свой восторг в 90-х, когда переходил с 8080 на Z80 - даже тот же самый код работал быстрее - многие команды выполнялись за меньшее число тактов. А уж команда пересылки данных, встроенный контроллер прерываний или дублирующий набор регистров - это просто бомба.

Подскажите, а есть платочки типа arduino для eZ80, Z180 или чего нить в этом духе?

ПолнO. Этот как часы для начинающего программиста микроконтроллеров )
Каждый должен собрать мини комп на Z80 и запустить CP/M. Я, каюсь, тоже не удержался.
Есть знаменитый проект миниZ80 на 5 микросхемах. Есть различные адаптеры к ним (терминалки, адаптеры PC клавиатуры, видеоадаптеры и т.п.)
Система проста, отлично документирована и имеет низкий порог входа. Для изучения очень удобно.

> Подскажите, а есть платочки типа arduino для eZ80, Z180 или чего нить в этом духе?

ПолнO

Хотя сам и начинал с Z80 ("девкит" - квадратная плата АОНа) и иногда тоже случаются приступы ностальгии, но ARM избаловал и хочется как минимум как у stm32 - st-свисток, залить/посмотреть на переменные. Так что хотя и лежит легендарный Т34 в керамике, но пока лежит.

Недавно Zilog объявила, что последние заказы на оригинальные Z80 принимаются до 14 июня этого года.

Вот как тут поспорить с тем, кто утверждает, что раньше всё было лучше) Не только деревья большие были и размашито качались, но и умели люди делать долгоживущие вещи! Не то что современная цивилизация одноразовых поделок. Сделали в своей время микропроцессор - полвека производится! А я тут материнскую плату родом из 2010-ых найти в продаже уже не смог...

Это как УАЗ буханка. Сразу в точку попали.

Эх, вот в наше время...)

Думаете, 48 лет назад люди не делали проходное у.г., как сейчас? Делали, просто оно сломалось и забылось.

Думаете, что из современных разработок вообще ничего не проживёт 48 лет? А откуда вы знаете? Вон даже сама Intel не особо верила в успех однокристальных микропроцессоров. А как всё в итоге повернулось)

"Ошибка выжившего" - это называется.

А я тут материнскую плату родом из 2010-ых найти в продаже уже не смог

На АлиЭкспресс искали? Я так искал для 1366 новую МП, нашёл 😏 Нигде в РФ не было,а там нашёл :⁠-⁠)

У меня несколько специфическая МП - серверная mini-ITX вполне конкретной марки и модели. Их изначально-то не то чтобы густо было)

А это очень сложно. У меня мать под 1366 и память rdimmm. Стоят 4 плашки и 4 затычки чтобы работало. 4 плашки ещё почти невозможно найти

Хм, как так, что за подсчет такой в одни ворота?

По мне так перевод один в один Википедии, все картинки даже оттуда. При этом ни слова о Синклере, других типах Z80, напрмер, таких как клевый Z84C15 с Killer I/O, а ведь на нем столько было плат контроллеров наделано. Неужели все это напрасно было и остались только какие то общедоступные картинки с вик

Хм, как так, что за подсчет такой в одни ворота?

Мелкий баг отображения. Насколько понимаю, о нём уже известно, его починят.

По мне так перевод один в один Википедии

Опять это издевательство и троллинг. В котором это месте перевод «Википедии»? У вас главное — погромче выкрикнуть какую-нибудь гадость?

Раздел истории Z80 на «Википедии» вольно пересказывает документ Zilog Oral History Panel on the Founding of the Company and the Development of the Z80 Microprocessor. Это самый популярный (если не единственный адекватный) источник информации по процессу создания Z80 в 1975–1976 годах.

все картинки даже оттуда

Тоже ложь. У меня источники все расставлены.

Кстати, одну из картинок в «Википедии», вероятно, перерисовали с с 65-й страницы книги Programming the Z80, но без указания источника. Буквально помечено «собственная работа».

Ну да, ну да

Я вроде по делу всё, а вы мне карму сразу портить. Некрасиво

Да, в письме Zilog речь идёт только про модели собственно процессора. Спасибо, упомянул.

Да, хороший процессор, сразу sega вспомнилась. У неё, как известно основным был Motorola 68000, а Zilog Z80 вспомогательным. Приятно думать, что тоже прикоснулся к легенде, ну по крайней мере использовал в детстве.

первую коммерческую интегральную микросхему Fairchild 3708

Да шо вы говорите... Вот прям-таки и первая-первая коммерческая во всём мире? Вынужден присоединиться к коллективному мнению о низком качестве перевода материала.

Очевидно, что пропущено слово «подобную» (в остальной части предложения речь идёт про новую на тот момент технологию, которую применили в чипе). Перефразировал, спасибо.

Спасибо за статью. Хоть и большинство фактов общеизвестно, но хорошо когда всё собрано в одном тексте и выстроено хронологически. Ф. Фаджина начали упоминать в публикациях относительно недавно, теперь понятно почему.

Жду аналогичную статью про MOS 6502, который так же производится по сей день, хоть и не оригинальной компанией. И ему в следующем году будет полтос. :)

PS:

На счет высокой производительности Z80 относительно i8080A как-то сомнительно, учитывая что у Z80 4-х битовое АЛУ и любая операция над данными занимает в два раза больше тактов.

 Processor / System 	Dhrystone MIPS or MIPS, and frequency 	D instructions per clock cycle 	D instructions per clock cycle per core 	Year 	Source 
Zilog Z80 	0.580 MIPS at 4.000 MHz 0.145 	0.145 	1976 	[16]
Intel 8080A 	0.435 MIPS at 3.000 MHz 	0.145 	0.145 	1976 	[14]
MOS Technology 6502 	0.430 MIPS at 1.000 MHz 	0.43 	0.43 	1975 	[16]
MOS Technology 6502 	2.522 MIPS at 5.865 MHz 	0.43 	0.43 	1981 	[16][22]

Фактически, по производительности Z80 и i8080A были близнецы-братья. Z80 был хорош тем, что требовал только одно питание +5В, потреблял меньше, и, наверное, стоил дешевле. :)

А вот тот же MOS 6502, вышедший на год ранее, был почти в 3 раза более крут и частоты держал свыше 5 МГц. Мне очень нравится архитектура 6502 своим минимализмом и локаничностью.

На счет высокой производительности Z80 относительно i8080A как-то сомнительно

Вопрос ещё в оптимизации кода под конкретный процессор - использование дополнительных регистров и инструкций на Z80 может помочь в реальном коде.

Дополнительные несколько регистров это слабо, наверное в умелых руках из этого можно было что-то выжать.

В 6502 было применнено интересное решение - первая страница памяти может быть использована как регистры указателей (считай 128 шестнадцатибитных регистров). Это серьезно упрощало программрование и давало выигрыш в производительности.

Да, zero page интересное решение - но работает только с синхронной памятью на частоте процессора (в те времена, правда, ничего особенного в этом не было).

У 8080 плохо ещё то, что его 7 регистров все разные, с разным назначением возможностями использования -- поэтому, хотя их вроде бы и прилично, но в реальных задачах постоянно не хватает. 6 регистров PDP-11 -- намного больше, чем 7 и у 8080, и у 8086 :)

Зато они хуже делятся на 8-битные части :)

Ну, у современных процов вроде ARMов они вообще не делятся :) На самом деле, это не особо нужно, если есть нормальные команды обращения к памяти не только словами, но и байтами, полусловами и т.п., а не только полными словами, и если самих регистров достаточно. AVR8 с её 32 регистрами точно куда лучше, чем 8080/Z80 :) Хотя не сказать, чтоб они были равноправны -- можно разделить, по меньшей мере, на три категории (подробней не помню, на асме писал только один раз под них).

На самом деле, про программировании руками на Z80 это вполне себе и очень даже нужно. Что касается АВР -- у него указателей в память небогато.

Интересное сравнение, спасибо, всегда казалось что 6502 изза его лаконичности должен был требовать больше инструкций на реальных задачах и быть вобщем-то медленнее.

Дополнительные регистры у Z80 должны были наверное давать хорошое преимущество для RTOS при переключении контекста, но в остальных случаях врядли тогдашние программисты могли эффективно их использовать. Всегда было интересно чем руководствовались сами создатели, может быть именно этим, может надеялись unix на него портировать?

Сам я в свое время порядком программировал на ассемблере под 8080, но до z80 не добрался, когда он однажды ко мне попал были уже 80286, там было в то время попросторнее.

Совсем тогждашние может и нет но дальше то научились. Создатели весьма вероятно ориентировались на совместимость с имеющимся кодом. В два раза больше регистров за ут же цену. Но вообще так удобно например сохранять регистры войдя в прерывание не тратя кучу тактов - как БЫ переключение контекста.

Примерно для этого и предназначалось. Как и в старших моделях PDP-11 (скажем, на PDP-11/70 и нашей СМ-1425: два банка регистров вместо одного, как на основной массе машин). Аналогичное решение -- в классических ARM, прямыми потомками которых являются нынешние A- и R-профили (но не M-профиль, который, по сути, -- совершенно другая архитектура, частично совместимая на уровне команд).

Аналогичное решение -- в классических ARM

Ну там всё же какой-то совсем мизер регистров для FIQ и всё. В остальных прерываниях/исключениях миррорятся только PC/SP/LR или что-то вроде того, минимум, достаточный только чтоб сохранить контекст основных регистров куда-то в память.

У FIQ, да; сколько регистров -- не помню. Но особого толку от этого нет; как по мне, все эти многочисленные режимы ARMа -- просчёт архитекторов, и реально нужны только два: система и пользователь.

Вот в risc-v так и сделали :)

Я начинал с 6502. 8080 никогда не нравился, как и Z80. По объёму памяти программы под 6502 нередко были несколько короче. Да, регистров меньше, но были короткие (двухбайтовые) команды для доступа к первым 256 байтам памяти. А x86 -- вообще ужасная система команд, но тут надо сравнивать не с 8-разрядными, а с 16- и 32-разрядными. Например, с PDP-11 и VAX-11 :) Ну или 68000 и Z8000.

По объёму памяти программы под 6502 нередко были несколько короче.

А это точная инфа? Ну, например, на сложении 16-битных чисел продемонстрируете? ADD HL,DE -- 1 байт на Z80.

Надо писать целые программы, а не отдельные команды демонстрировать, а я этим занимался 35 лет назад :) Если интересно, можете попробовать поискать какие-нибудь математические подпрограммы в тырнетах -- вдруг выложены, можно хотя б на них посмотреть. Помню, что многие мелочи, что тогда писал, на 6502 у меня выходили короче, чем на 8080, да ещё и работали быстрее нередко, хотя сам проц на 1 МГц, а 8080 (ну, точней, КР580ВМ80А, но не суть) -- на 2,5 МГц. Но за давностью лет без подробностей, сами понимаете :)

Конкретно с Вашим примером -- конечно, 8080 короче, ведь у 6502 все операции выполняются в единственном регистре-аккумуляторе, два других регистра (X и Y) -- только для адресации. Поэтому любые вычисления -- с памятью, а там уже нужны адреса. Но, как Вы понимаете, сложение двух пар регистров -- это не программа, это крошечный кусочек программы, а в реальных программах, в конечном итоге, данные будут лежать в памяти.

Вот пишу и думаю: а может, мне себе нью-Агат собрать?.. :)))

Чем не целая программа например вот: https://www.youtube.com/watch?v=StsO4EbeJBM ? Можете начинать писать на 6502 :) Если ещё на утубе смотреть, например, игру fairlight (тоже целая программа) на спектруме и на комоде -- там хорошо видно, что комодный 6502 на 1 МГц работает примерно раза в 2 медленнее, чем спектрумский Z80 на 3.5 МГц. Что я в общем-то и сказал.

Но, как Вы понимаете, сложение двух пар регистров -- это не программа, это крошечный кусочек программы

Ну ок, давайте напишем подпрограмму умножения 8*8->16, беззнаковую, без таблиц, на макс. скорость работы. А ну и да, Z80, а не ы8080.

Интересное сравнение, спасибо, всегда казалось что 6502 изза его
лаконичности должен был требовать больше инструкций на реальных задачах и
быть вобщем-то медленнее.

Я тоже так думал, пока специально не поинтересовался этим вопросом. У меня первыми машинами были Atari (MOS 6502) и БК/ДВК (PDP-11). После того как я потрогал руками клон Спектрума, процессор Z80 показался мне унылым, но это скорее всего было субьективное ощущение на фоне 286-х. Пару лет назад меня заинтересовала тема ретрокомпьютинга (насмотрелся видеороликов Бена Итера) и мне стало любопытно, а кто собсно круче, и все данные говорят не в пользу Z80.

RTOS в то время не было, а Z80 разрабатывался специально для CP/M. Но если я ничего не путаю, то CP/M изначально была однозадачной ОС и какая могла бы быть польза от двух наборов регистров мне сказать сложно. Возможна ли вообще многозадачность и многопользовательность на Z80 ? Наверно да. Как-то мне попадалась статья про "софтварный" MMU для Z80 требующий минимум аппаратных доработок (соединить #NMI и #IORQ через триггер).

Два набора -- для быстрой обработки прерываний (не надо сохранять регистры, чтобы сделать хоть что-то полезное).

Что касается многозадачности и многопользовательности, они возможны везде, где хватает ресурсов в виде памяти и производительности. Вот защиты памяти на том же Z80 нет -- но это влияет на надёжность системы, а не на возможность выполнения нескольких задач нескольких пользователей. Та же многозадачная многопользовательская RSX-11M (у нас -- ОС-РВ) могла быть сгенерирована как под полноценную PDPшку/СМку с MMU и прочим, так и под простые машины без MMU, а соответственно, без какой-либо защиты -- и всё работало, пускай и с очевидными ограничениями.

Два набора -- для быстрой обработки прерываний (не надо сохранять регистры, чтобы сделать хоть что-то полезное).

Вообще потом научились их использовать и для ускорения обычного кода.

От применения зависит. Если настоящей обработки прерываний нет (в каком-нибудь бытовом компе их вообще может не быть, в принципе; на Агате, который кривой клон Элпа-2 на 6502, прерывания только от таймера, например). Ну а использовать много где можно, если знать и уметь

Никакой связи 2ого набора регистров в Z80 и обработки прерываний нет. 2ой набор можно использовать для обработки прерываний, а можно и не использовать. От этого обработка не станет "ненастоящей".

а Z80 разрабатывался специально для CP/M.

Очень наврядли! Его начали разрабатывать в 1975 году, к 1976 уже закончили, а CP/M начали продавать только весной 1976 года.

CP/M была разработана Гарри Килдэйлом в 1974-м для i8080, об этом есть запись в Википедии. В 75-м продажи уже шли полным ходом. Так как CP/M была первой и единственной ОС для микропроцессоров, то она очень быстро стала популярна (а парни из Сиетла сделали клон и продали его Гейтсу с сотоварищами, их чего позже родился MS-DOS). Мне где-то попадалась информация, что к выходу Z80 версия CP/M под этот микропроцессор уже была готова, правда без поддержки новых регистров, т.е. в режиме совместимости с i8080 (был какой-то транслятор, на ход бинарник под i8080, на выходе - бинарик под Z80). В общем, у них там было перекрестное опыление - разработчики новых микропроцессоров уже на стадии разработки думали как их продукция будет эксплуатироваться и контактировали с разработчиками софта.

https://en.wikipedia.org/wiki/CP/M

CP/M была разработана Гарри Килдэйлом в 1974-м для i8080

Он в конце 1974 года только смог загрузить с перфоленты первый прототип.

В 75-м продажи уже шли полным ходом.

В 1975 году было продано всего несколько лицензий для мелких производителей - изначально даже не было концепции BIOS. IMSAI - первый крупный клиент, смог запустить у себя CP/M только во второй половине 1976 года, причем при активном участии Гарри - иначе не работало ничего.

В сети есть исходник версии 1.1 - 11/21/75, внутри никакого упоминания про DR, т.к. Гарри тогда еще не зарегистрировал компанию, а исходник настолько куцый - что вообще не понятно, что такого разработчики Z80 могли в этом исходнике для себя полезного вычитать?

Так как CP/M была первой и единственной ОС для микропроцессоров

Нет, была она единственной, у Intel сразу была ISIS, к примеру.

Мне где-то попадалась информация, что к выходу Z80 версия CP/M под этот микропроцессор уже была готова

В Zilog изначально разработали специально для Z80 операционную систему Z80-RIO, которая использовалась на их собственных компьютерах для разработки под Z80 - с ассемблером, транслятором и т.д. Вот эмулятор с какой-то из поздних сохранившихся версий:

https://github.com/ivanizag/izilogmcz

Кстати, возможно, 6502 -- вторая по древности архитектура, которая производится до сих пор (первой является ИБМовская Система 360, постепенно эволюционировавшая в z/Architecture). Хотя, может, кто-то где-то ещё производит что-то совместимое с PDP-11 или HP2xxx -- для вояк, например. Но сомнительно, честно говоря.

А вот тот же MOS 6502, вышедший на год ранее, был почти в 3 раза более крут и частоты держал свыше 5 МГц.

Оригинальный 6502 из 1975 года на 5 мгц точно работал? Ссылку можно на даташит?

А что касается остального, во-1 6502 на 1 мегагерце был примерно в 2 раза медленее Z80 на четырёх, а на 2 мегагерцах -- примерно с таковым Z80 на равных ("примерно" -- это где-то на полпорядка, двоичного :). 6502 имел меньшую плотность кода и за счёт zero page и стека в 256 байт был менее приспособленным для больших систем.

Смотрите выше, я приводил выдежку из таблицы сравнения производительности и IPC этих микропроцессоров. Первый MOS 6502 мог работать на частотах до 3 МГц, но уже скоро после выхода первой версии последовали модификации позволяющие разгонять его на более высокие частоты. На счет применимости в "больших" системы это вопрос спорный. Z80, в общем-то, далее микроконтроллерного применения и 8-ми битных ПЭВМ не ушел. Какие такие "большие системы" Вы имеете в виду ?

Смотрите выше, я приводил выдежку из таблицы сравнения производительности и IPC этих микропроцессоров.

Там "MIPS" -- что это такое? А то ведь можно мерять "IPS" нопами, а можно ещё сотнями других инструкций. Ну и наконец MIPS не показатель быстродействия, например изобразите сложение 2 16-битных чисел на 6502.

Какие такие "большие системы" Вы имеете в виду ?

Вот например, если вы пишете программу на ассемблере, которая должна жить вместе с ОС/РОМ на чём-то вроде аппле2 или комодоре64, у вас в полный рост встаёт проблема распределения ячеек zero page между процедурами в ROM и в вашем коде. А если пишете программу на C, то вдобавок легко можете упереться в недостаток 256 байтов стека.

В Агатах и, надо полагать, Эпле-2 6502 работал на 1 МГц. Но у меня, по ненадёжным воспоминаниям 35-летней давности, впечатления, что, скажем, умножение-деление он выполнял уже быстрей, чем 8080 на 2,5 МГц -- но главу на отсечение не дам :)

Вообще, можно сравнивать скорость конкретных моделей, а можно -- "микроархитектурную", т.е. насколько эффективно команды реализованы и сколько времени жрут в тактах: частота ж от техпроцесса и много чего ещё зависит, а такты -- только от "логического" устройства.

А вот стек в 256 байт -- маловато, конечно, тут без вопросов :)

Ха, а кто-нибудь еще помнит как на Z80 можно было стеком быстро очистить экран?

Это долго. Стековые операции были самыми быстрыми. можно было вместо 1 байта сразу 2 обрабатывать. 16 битные инструкции на 8 битном процессоре))

С 4-битным АЛУ:)

Это не такая большая проблема: обращения к памяти выполняются за несколько тактов, а АЛУ отрабатывает каждый такт.

Вообще большая, т.к. любое прибавление 8-битного знакового смещения к 16-битному адресу коматозило аж 5 тактов, см. (IX+d), JR, LDIR/etc.

Ну, да, про 16-разрядные операции я как-то не подумал. 8-разрядные -- два такта, вполне параллелятся с доступами к памяти (в теории, во всяком случае, как там на практике -- без понятия, ибо на Z80 не писал; даже сидя на Роботроне-1715, применял его для написания программ для 8080, ибо в контроллерах использовались они).

Sign up to leave a comment.

Articles