nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 13:25



Reply to topic  [ 68 posts ]  Go to page 1, 2, 3, 4, 5  Next
самодельный многозадачный процессор 
Author Message
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
интересная тема
как раз перед тем как на неё наткнуться, начал задумываться о том как бы спроектировать свой процессор, причем сразу многозадачный,
да ещё и на 32бит (ну нету у меня губозакатывательного устройства, и никогда не было)

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

Image

должно работать довольно шустро, раза в 2 быстрее обычного последовательного из этой темы (а может и в 2.5 :lol: )

жаль нет кнопки "прикрепить картинку"

ЗЫ Что можете сказать по серии микросхем 1554 ?


27 Feb 2014 05:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Mogrif wrote:
сижу медитирую над схемой параллельного сумматора, получается что-то вменяемое только на 2 бита, дальше схема начинает
разрастаться слишком уж монструозно...

ЗЫ Что можете сказать по серии микросхем 1554 ?

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

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

С серией микросхем 1554 к сожалению не работал, так что ничего сказать не могу.

_________________
iLavr


27 Feb 2014 06:07
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Нормальная серия. Улучшенная 1533.


27 Feb 2014 09:50
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
Решил, что дальше параллелить нет смысла, и доработал схемку до простейшего 2х битного АЛУ

Image

теперь осталось насадить ЭТО на конвейер для увеличения битности

А теперь вопрос: что ещё должно быть в универсальном АЛУ, ну кроме сдвигов, которые лучше сразу делать нужной битности на основе регистров/триггеров ?


27 Feb 2014 15:39
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22606
Location: Silicon Valley
Reply with quote
Post 
Откусил отсюда

_________________
:dj: https://mastodon.social/@Shaos


27 Feb 2014 17:13
Profile WWW
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
Возник ещё вопрос:

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

пока что мне приходит в голову только счетчик внутри АЛУ с заранее прошитыми таймингами (это если операция не укладывается по времени в 1 такт).


28 Feb 2014 00:41
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
Shaos wrote:
Откусил отсюда


Зря, мне не надо целую тему, вполне подошла бы та, про 4бит АЛУ для задать пару вопросов по техпроцессу :)

а то целая новая одинокая тема, в которую может быть кто-то изредка и заглянет....


28 Feb 2014 02:50
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
Пока что решил остановиться на 8-битном вычислительном ядре и 32-битной шине адреса, наверное придется извращаться с косвенной адресацией.

Вырисовывается такая картина:

при запуске процесса система выделяет ему YYYYYYYY памяти начиная с адреса XXXXXXXX, ВСЕ, процесс может работать ТОЛЬКО с этой памятью, когда счетчик команд добрался до конца выделенного сегмента, он автоматически обнуляется и начинает считать дальше сначала

для основного системного процесса выделена вся память с 0 и до самого конца

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

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


03 Mar 2014 23:34
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
посидел, посмотрел как устроены чипы, тот же ИР11, впечатлился, прикинул сколько надо корпусов мелкой логики чтобы его заменить, и решил что неплохо бы использовать и готовые элементы, а не только мелкую логику

вот теперь размышляю, стоит ли использовать комплект 2хИП3+ИП4, просто 2хИП3 или самосборное АЛУ
от этого зависит будущая система команд

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

при использовании ИП3+ИП4 процессор разрастется до 16бит, т.к. ИП4 обслуживает 4шт ИП3.


19 Mar 2014 21:29
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 460
Location: Москва
Reply with quote
Post 
Mogrif wrote:
Возник ещё вопрос:

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

пока что мне приходит в голову только счетчик внутри АЛУ с заранее прошитыми таймингами (это если операция не укладывается по времени в 1 такт).

В тактируемых схемах и с комбинационным АЛУ обычно происходит так: в начале такта выставляется код операции АЛУ, на входы АЛУ подаются операнды, возможно со всякими задержками через мультиплексоры и т.п., в конце такта происходит запись результата в регистр. Длительность такта выбирается из расчета максимальной задержки. В продвинутых системах может меняться длительность такта, которая задается на основании кода операции (в расширенном смысле, код АЛУ и код конфигурации тракта данных)


20 Mar 2014 03:16
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 460
Location: Москва
Reply with quote
Post 
Mogrif wrote:
решил что неплохо бы использовать и готовые элементы, а не только мелкую логику

Ну да, в центр сразу MIPS какой-нть простенький поставить :)


20 Mar 2014 03:18
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Ну не MIPS, но мысль собрать что-нибудь на PIC и параллельных FLASH, используя их как программируемую логику, у меня была.

На вашем сайте такие вещи как FPGA и 80386 вообще не котируются? :)


20 Mar 2014 11:05
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
fpga это не спортивно, а вот 80386 не отказался бы посмотреть схемку на предмет реализации защиты памяти и выгрузки состояния процессора при переключении процесса


20 Mar 2014 22:14
Profile
Writer

Joined: 27 Feb 2014 05:15
Posts: 23
Location: 93.123.183.154
Reply with quote
Post 
опять же интересно как в х86 вычисляется реальный адрес, при адресации через сегмент:смещение, при адресации через набор регистров (базовая косвенная адресация)
не может же там тупо стоять сумматор

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

а задействовать АЛУ для вычисления реального адреса не слишком хорошо


21 Mar 2014 02:33
Profile
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Post 
Mogrif wrote:
опять же интересно как в х86 вычисляется реальный адрес, при адресации через сегмент:смещение, при адресации через набор регистров (базовая косвенная адресация)
не может же там тупо стоять сумматор

а задействовать АЛУ для вычисления реального адреса не слишком хорошо
Может. А какое АЛУ? То, которое используется для обработки данных, или специально выделенное для этих целей?


21 Mar 2014 03:50
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 68 posts ]  Go to page 1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 53 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.