4-bit Processor

4-битные микроконтроллеры и микропроцессоры (прошлое, настоящее, будущее)

Moderator: Lavr

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Аппаратный интерфейс

Post by Lavr »

Shaos wrote:
Lavr wrote:Джентльмены, у кого-нибуть есть образец чисто аппаратной реализации какого-либо
популярного последовательного интерфейса: RS-232, SPI, FSK или чего-то
подобного?
SPI
А ссылочку или схему? SPI - очень удобно, реализуется практически
через любой интерфейс РС.

PS. И мы пока совсем не продвинулись в вопросе, как работало 4-bit ALU in
8-bit system, причём очень шустро!
:-?
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Смотрю я, на nedoPC.org Forum не впервые бросаются конструировать процессор
на россыпи. И что удивительно, бьются головой об одни и те-же вопросы:
CPU N http://nedopc.org/forum/viewtopic.php?t=9180

В АЛУ на NAND viewtopic.php?t=9386
мы заново все аналогичные грабли истоптали...
Сдвинется ли воз?

danchandoo тоже пытался обработать длинное рабочее слово по частям, но, похоже,
успеха не достиг. :-?
danchandoo wrote:для таких «извращений» нужно мультиплексировать в АЛУ младшие и старшие части шины, или хотя-бы сделать между ними мост.
danchandoo wrote:SRAM используется как ROM, для чего процессор снабжен 4-мя батарейками АА
И мы пришли к такой мысли, и Шаос снова сказал, что есть "грабли", а я сказал
что "грабли" поправимы... :wink:
viewtopic.php?t=9386&postdays=0&postorder=asc&start=90

А по поводу стека danchandoo нагнал такой туман, что даже сам признался:
danchandoo wrote:Немного запутано написал.
Стек скрыт, значение его указателя узнать нельзя. При переполнении стека генерируется прерывание. В лучшем случае оно может корректно завершить работу программы в которой случилась ошибка, манипуляции вида "перенести часть стека и значений регистров вызванных ранее процедур в память и продолжить работу" скорее всего невозможны. Самая большая проблемма при этом -- необходимость отследить момент, когда нужно вернуть сохраненные регистры и адреса обратно в процессор.
Крепкий орешек эта схемотехника стека!!! :lol:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

RCA 1802

Post by Lavr »

Возможна реализация безстековой машины. Хороший пример: RCA 1802.
http://ru.wikipedia.org/wiki/RCA_1802
Важной особенностью процессора является регистровый файл, состоящий из шестнадцати 16-разрядных регистров. Любой из них может быть использован в качестве указателя текущей команды (выбирается командой SEP) или индексного регистра (выбирается командой SEX). Регистр R0 имеет специальное назначение и хранит адрес, используемый встроенным простым контроллером прямого доступа к памяти.

Процессор не имеет обычных команд вызова и возврата из подпрограммы (CALL и RET) и поддержки стека. Возможность размещения указателя текущей команды в любом регистре позволяет реализовать необычные способы вызова подпрограмм, однако, в основном подходящих для программ небольшого размера. Адреса нескольких наиболее часто используемых подпрограмм могут размещаться в нескольких регистрах, а вызов и возврат из подпрограмм выполняться с помощью команды SEP. При выполнении команды SEP перед выбором нового регистра увеличивается адрес в текущем используемом регистре, что позволяет легко реализовать возврат в нужное место. Также может быть организован вызов двух или более подпрограмм в циклическом режиме. Это часто использовалось в любительских компьютерах при отображении графики, для четырёхкратного дублирования строк. Вызов подпрограмм по вычисляемым адресам не представляет сложностей, так как все команды CALL используют индексную модель адресации.

Помимо команд условного перехода также присутствуют команды условного пропуска следующей команды.
Вопрос в том, насколько это упрощает схемотехнику. В принципе у PIC короткий
стек адресов возврата.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:
Lavr wrote: А ссылочку или схему? SPI - очень удобно, реализуется практически
через любой интерфейс РС.
Статья была в Circuit Cellar недавно про то как на сдвиговых регистрах делать мастера или слейва SPI, а вообще гугл выдаёт вот такие вещи:
http://www.maxim-ic.com/app-notes/index.mvp/id/801#q3.3
http://softsolder.com/2009/07/18/arduin ... l-data-io/
http://www.myamicus.co.uk/content.php?2 ... -using-SPI
Ну если опираться на регистр сдвига 74HC595, то и от RS-232 можно сигнал
в паралленьный вид перевести.
http://www.labkit.ru/html/autocontrol?id=136

Image

Другое дело, что для полного автомата, на мой взгляд, нужен счётчик бит и
генератор сигнала параллельной записи принятого слова...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

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

Насколько на ваш взгляд такой механизм неудобен? (Позволяет не
записывать в PCLow, а лишь сбросить его при переходе).
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Я начал слеплять наш 4-битный проект в "Протезусе", но в последний
момент несколько тормознулся с источником: Computer Architecture.

Его искренне советовали на одном англоязычном форуме, где группа
энтузиастов также 4-битный процессор собирается сделать.

Мне источник понравился, тем что разрешил все мои сомнения, как
реализовывать стек.
Я хоть и потерял 2 дня и немножко Шаоса подзагрузил манипуляциями на С,
но после прочтения решил себе всё это соскладировать, хоть у меня и др.
книжек много.

Мужик реально пишет просто, последовательно и чётко.
А поверил я его компетенции, поскольку он прозрачно расписал вызовы
подпрограмм на Фортране (без стека), а ведь я это учил, и хотя - всё
тлен, со времён Фортрана не люблю рекурсий...

Так что проект продолжаю, хотя скоро отпуск, а в первую неделю отпуска
Я НИЧЕГО НЕ ЛЮБЛЮ ДЕЛАТЬ, КРОМЕ ЗЛОСТНОГО И РАЗНУЗДАННОГО БЕЗДЕЛЬЯ!!! :lol:
antsnark
Doomed
Posts: 434
Joined: 27 Jan 2010 03:45
Location: 83.149.9.42

Post by antsnark »

http://www.ehow.com/how_7819712_design- ... dders.html

это было?

попробуйте поискать и пофильтровать по этой ссылке http://bit.ly/k0Wu5I
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

antsnark wrote:http://www.ehow.com/how_7819712_design- ... dders.html
это было?
попробуйте поискать и пофильтровать по этой ссылке http://bit.ly/k0Wu5I
Спасибо - это что-то похожее, надо почитать внимательно...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Epson 4-BIT MICROCOMPUTER

Post by Lavr »

Нашел некий "мануал" для
Seiko Epson S1C63000 CMOS 4-BIT SINGLE CHIP MICROCOMPUTER
Core CPU Manual for Epson S1C63000 Personal Computer

http://office.manualsonline.com/manuals ... 63000.html


Не знаю - что это за компьютер - непопулярен он как-то, но хотя бы кое-что
про 4-битное программирование они пишут:
URL: http://dl.owneriq.net/2/2c4042b8-16b5-4 ... 705d23.pdf

ЗЫ. Странный мануал у Epson S1C63000, хоть бы пару фраз сказали о назначении
этого чипа...
antsnark
Doomed
Posts: 434
Joined: 27 Jan 2010 03:45
Location: 83.149.9.42

Post by antsnark »

Munich, February 23, 2010: Seiko Epson Corporation (“Epson”, TSE: 6724) today
announced that it has developed a new series of ultra-low current, 4-bit
microcontrollers. The microcontrollers in the new S1C63000 series run on as little
as 1.1V in operating mode and only 0.1 µA in sleep mode. Volume production is
slated to begin in April 2010, with plans calling for two-million units, total, per
month.
The new microcontrollers incorporate Epson’s original low-power analog IP and low-leak process technology allowing it to operate on a 1.5V button cell battery such as silver-oxide battery or alkaline button cell. With CPU running at high speed of 4MHz, the microcontroller consumes only 220uA of current, 75% reduction in comparison to Epson previous products.
In addition to their low-voltage operation and low-current consumption, the new microcontroller S1C63000 series boast powerful on-chip peripheral circuits, which includes the constant voltage circuits and liquid crystal driver circuits, as well as resistance-to-frequency type A/D converters (R/F converters), resulting in precise temperature and humidity measurements as well as supply voltage detection circuits offering greater accuracy in comparison to previous products
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

antsnark wrote:Munich, February 23, 2010: Seiko Epson Corporation (“Epson”, TSE: 6724) today
announced that it has developed a new series of ultra-low current, 4-bit
microcontrollers. The microcontrollers in the new S1C63000 series run on as little
as 1.1V in operating mode and only 0.1 µA in sleep mode.
Ну я тоже что-то такое прочитал... Что с ним можно сделать-то?
У Микрочипа хоть "Хэллоу Ворд" есть = зажечь два светодиода и
"послушать" 2 кнопки
... а тут че зажечь? :wink:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Несколько слов о состоянии проблемы на данный момент, тем более, что и
Shaos намекнул о том, что она притормознулась...
Shaos wrote:Ну твое свободное время можно замечательно направить в 4-битную плоскость
viewtopic.php?t=9631

С аппаратной точки зрения вопрос о схемотехнике 4-битного процессора мне
практически ясен и большинство трудностей разъяснились.
Во многом систематизировать и разобрать все вопросы мне помог цикл статей
Computer Architecture французского автора, ссылка на который есть в software
http://dept-info.labri.u-bordeaux.fr/~s ... l/Dir.html

Оказалось (да иначе и быть не могло), что схемотехника зело завязана на
систему команд и тут возникли новые вопросы. В частности, вот мы уже
обсуждали:
Lavr wrote:
Shaos wrote:
Lavr wrote:Условные переходы предлагаю - только по выполнению условия.
JZ
JC
JM
А может как на пике? Skip if Zero и Skip if Not Zero?
Ну надо посмотреть как на схемотехнике отражается.
Пиковские Skip if Zero и Skip if Not Zero
и один безусловный JMР мне казались столь неудобны...
Здесь ситуация вот какая: для Skip if Zero и Skip if Not Zero аппаратных
затрат практически не требуется. Но безусловный JMР должен быть -
а это выливается в загрузку РС с шины данных. Но раз такая загрузка
аппаратно реализована, JZ JC JM на адрес - не явятся проблемой.
А вот те же команды перехода JZ JC JM на относительный адрес потребуют
в схему сумматора со смещением - это увеличивает аппаратные затраты.

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

Следующий весьма неприятный момент - это программное обеспечение.
Дело в том, что несмотря на 4-битность, с голыми нибблам никто не
работает. Как ни странно работают все всё-равно с байтами. И тут
вот трудности начинают выплывать. Где-то 8 бит аппаратно грузят
сразу в два 4-битных регистра и работают с ними как с регистровой
парой, есть и другие трюки. То есть чистого 4-битного софта вроде
как такового и нет. А этот факт накладывает отпечаток на схемотехнику
процессора. Так что сейчас настырно читаю документ от INTEL:
MCS-4_Assembly_Language_Programming_Manual_Dec73.pdf -
как интересующие меня вопросы были решены в i4004.
Если что-то прояснится, то будем посмотреть. По крайней мере есть
ассемблер и дизассемблер с отладчиком.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

На всякий случай вот линк на доки: http://www.bitsavers.org/pdf/intel/MCS4/
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:На всякий случай вот линк на доки: http://www.bitsavers.org/pdf/intel/MCS4/
Спасибо - у меня есть все эти доки... Хотелось бы чего посовременнее
глянуть. Но видимо так и придётся танцевать "аб ово"... Аб этого древнего
тухлого "ово". Но выбор небольшой... :-?

PS. Качество - так себе у этих док... Источник один и тот-же. :(
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Следующий весьма неприятный момент - это программное обеспечение.
Дело в том, что несмотря на 4-битность, с голыми нибблам никто не
работает
. Как ни странно работают все всё-равно с байтами. И тут
вот трудности начинают выплывать. Где-то 8 бит аппаратно грузят
сразу в два 4-битных регистра и работают с ними как с регистровой
парой
, есть и другие трюки. То есть чистого 4-битного софта вроде
как такового и нет. А этот факт накладывает отпечаток на схемотехнику
процессора.
Собственно в чем основная трудность так это то, что с 4-битной
регистровой парой, составляющей байт работают по аналогии, как
К580ВМ80 выполняет команду DAD co своими регистровыми парами.
То есть, сразу учитывается флаг осевого переноса (как флаг С
при исполнении DAD). Отсюда сложный момент вот какой: либо
4-битные регистровые пары между собой связаны и флаг переноса
переходит в старший ниббл автоматически - но мне трудно представить
себе такую схемотехнику. Либо операция с байтом осуществляется в
два прохода по микрооперациям. А это противоречит RISC архитектуре
т.к. кроме вызовов и переходов всё должно выполняться за равное
количество тактов...

У i4004 архитектура гарвардская, но вот RISC ли?

Опять же 8 бит желательно одновременно подать на внешние устройства
иначе придётся городить огород с защелками для старшего и младшего
нибблов... :-?