Страница 1 из 6

Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 16:25:48
mixon46
Сколько бы кот не читал теории все равно без практики нечего непонятно. Я не могу понять. Как оно там все связано. Мк имеет 32 регистра. 1 регистр 8 бит. За один тактовый импульс выполняется одна команда. Мк имеет три шины данных. Каждая шина 8 бит. Одна шина управления. Другая шина данных. Третья шина ввода вывода. К АЛУ идут три эти шины. АЛУ складывает, вычитает, умножает(сдвигает), делит, сравнивает и еще много много чего вытворяет. Все это он по 8 битной шине выплевывает куда то. Как то сохраняет. И снова считает, считает, считает. И не по одной схематической схеме я полностью во всем этом не разобрался. А хотелось бы:(

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 16:32:55
DrGandalf
А с какой целью вы это хотите изучить? В чем конкретно хотите разобраться? Как собираются базовые логические элементы, триггеры, ячейки памяти и т. п. из транзисторов?

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 16:44:09
mixon46
как собраны логические элементы и тригеры на транзисторах это я немного знаю. читал. а вот как МК на этих логических элементах собран. в интернете нигде не видел. видимо коммерческая тайна производителей. а так хотелось бы узнать. вам наверное тоже? Я вот думаю. 32 регистра по 8 бит. Это что получается к АЛУ идет 256 проводков? И из него же выходит эти 256?

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 16:48:03
КРАМ
К АЛУ идет ОДНА шина в 8 проводников данных (все регистры запараллелены) и 32 линии идут в дешифратор адреса, который в свою очередь сидит на шине адреса МК.
Кроме этого есть 2 линии синхронизации (чтение-запись и строб-защелка)

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 16:56:52
Goodefine
mixon46 писал(а):... а вот как МК на этих логических элементах собран. в интернете нигде не видел. видимо коммерческая тайна производителей...

Смотря кто производитель ))) Если поискать, есть готовые проекты самодельных (вернее самописных) процессоров, выполненных на ПЛИС. Своя архитектура, система команд и т.д. Т.е. лепили себе "идеальный" процессор.

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 17:05:52
DrGandalf
Ага, или из 74xx микросхем :))

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 17:19:30
mixon46
к АЛУ идет 8 и получается выходит 8? Или эти восемь и как вход и как выход работают?

я тоже допустим хотел бы слепить себе самопальный профессор. Мне это интересно. Это как "конструктор" собирать.

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 17:22:38
Enman
Один канал 16и-разрядного центрального процессора ( без памяти программ, только 16 регистров общего назначения, без устройств ввода-вывода) состоял из порядка 800 корпусов кмоп-серии в 1980х годах... Так что для домашнего повторения мало подходит... :)

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 17:28:57
mixon46
16 разрядный это слишком много. А вот 8 разрядов нормально. Хотя на логических микросхемах тоже будет слишком много. Можно 4 разрядную сделать. Ну это я так думаю. Хотя представления даже не имею как это выглядет

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 17:44:04
Enman
Сначала процессору задаётся система команд, которые он должен выполнять. Потом выбирается архитектура (алу, где какие регистры что будут хранить и т.д.), способы выборки и расшифровки команд, операндов. На основании выбранного "железа" потом разрабатываются временные диаграммы выполнения КАЖДОЙ команды. Разрабатываются протоколы обмена с памятью и внешними устройствами...Потом паяем макет, и прибавляя очередную единичку в счётчике адреса команд добиваемся её выполнения... :)
В общем, прочитать обо всём можно, но самому браться за это не стоит, не зря в таких конструкторских бюро по 5 тыс. человек работало (разработкой процессора и обвязки занималось конкретно человек до 200, на разработку и наладку макета - год-два). Благо сейчас можно пользоваться готовыми процессорами.

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 18:00:52
mixon46
я видел видео о том что человек сделал простой профессор на реле. очень интересно стало как так оно все работает

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 18:07:17
Engineer_Keen
Я как-то в протеусе пытался собрать на отдельных логических элементах подобие AVR, но потом купил демо-платку с ПЛИСиной, поставил квартус, и собрал контроллер на нем), там без учета регистров и ОЗУ больше 2К логических элементов получилось, так что думаю в реальности это задачка не из легких.

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Вт дек 11, 2012 18:20:18
КРАМ
mixon46 писал(а):к АЛУ идет 8 и получается выходит 8? Или эти восемь и как вход и как выход работают?

Шина данных двунаправленная. В каждом цикле обмена она работает только в одну сторону. Это обеспечивается шинными формирователями каждого подключенного к этой шине устройства. Направление передачи переключается сигналами синхронизации шины.

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Ср дек 12, 2012 16:23:09
kalobyte
мы в пту собирали из логических блоков сумматор - самое простое, что есть в процессоре
есть старые книги, там можно почитать

если в паре слов, то вот
http://neerc.ifmo.ru/wiki/index.php?tit ... 0%BE%D1%80
схема сумматора на 1 бит и 2 входа и 1 выход
принимаем эту схему за черный ящик

теперь строим сумматор на 4 бита из черных ящиков по такой схеме
http://neerc.ifmo.ru/wiki/index.php?tit ... 0%BE%D1%80

блок вычитателя сделан по такому же принципу

есть еще блок декодера команд
на него приходит некое число например 8 или 16 бит и оно разбивается на части по битам
например 4 бита зарезервированны на команды, остальное может быть данными

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

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Пт дек 14, 2012 04:49:55
olovo
интересно правильно ли понимаю - сторожевой таймер, независимый, причем включен всегда (если не выключить в первые 4 такта). Его назначение при переполнении сбрасывать МК, т.е. как бы штатный резет получается? на случай если повиснет так сказать или зачем? п предвидели проблему зависаний? :)) однако его отключают получается в большинстве программ в которых данные нужны дольше 6 секунд?!

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Пт дек 14, 2012 05:02:30
olovo
и ещё одна мысль на рассмотрение, по логике самого МК, как я понимаю процессор умеет лишь перемножать цифры (в которые преобразованны данные) в соответствии с другой таблицей цыфр (программа, ведь по итогу как я понимаю она становится тоже цыифрами) на основании некой математической модели. потом при помощи соседних модулей переводит цифры в нужные нам сигналы на ножках.
ЗЫ: МК очень интересная тема :) :) :)

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Пт дек 14, 2012 08:47:24
Engineer_Keen
olovo писал(а):интересно правильно ли понимаю - сторожевой таймер, независимый, причем включен всегда (если не выключить в первые 4 такта)

У разных контроллеров по-разному, у кого-то включается выключается фьюзами, у кого-то программно, у кого-то и так и так.
olovo писал(а):Его назначение при переполнении сбрасывать МК, т.е. как бы штатный резет получается? на случай если повиснет так сказать или зачем? п предвидели проблему зависаний? :))

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

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Пт дек 14, 2012 12:44:40
Panda_Y2K
Вот народ процессоры изборетает :), очень интересно почитать, даже оказывается есть такое сообщество.
http://www.bigmessowires.com/bmow1/
http://www.homebrewcpu.com/
http://web.cecs.pdx.edu/~harry/Relay/index.html
http://www.holmea.demon.co.uk/Mk1/Architecture.htm
http://www.mycpu.eu/
http://www.timefracture.org/D16.html
http://cpuville.com/index.htm
http://www.galacticelectronics.com/Simple4BitCPU.HTML
http://www.ibmsystem3.nl/hjs22/
Это сообщество внизу есть кнопки next и prev для перехода к следующему сайту
А вот здесь интересное обсуждение было по самопальным процессорам http://www.balancer.ru/tech/forum/2011/ ... .6947.html
Тут на плиске avr клонировали http://www.marsohod.org/index.php/projects/66-makeavr
Вот тоже интересный сайт, народ самодельные процы придумывает и несамодельные обсуждает http://www.nedopc.org/forum/viewtopic.php?t=9182

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Сб дек 15, 2012 17:37:33
YS
а вот как МК на этих логических элементах собран. в интернете нигде не видел.


Схема МК в обычном понимании и не хранится. Обычно МК описывают на VHDL, Verilog или чем-то таком, и переводят сразу в технологические файлы для изготовления пластин.

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

Re: Внутреннее устройство МК. Сделать свой собственный МК

Добавлено: Сб дек 15, 2012 20:14:35
Panda_Y2K
Тем не менее в институтах изучают структуру, принципы работы и даже принципиальные схемы всех частей процессора. На пример по поиску "Арифметическо-логическое устройство" выскакивает ссылка на википедию, где приведена именно принципиальная схема АЛУ http://ru.wikipedia.org/wiki/%C0%F0%E8% ... 1%F2%E2%EE
Да и по моим ссылкам можно найти схемы этих самодельных компьютеров.
Конечно для современных суперсложных CPU так может быть и есть, как Вы пишите.
А все равно прикольно народ развлекается :)